搜索

1.功能概括

🎨 自动获取打卡信息(前提是有打过卡)
🎨 体温随机在36.1-36.6之间
🎨 打卡时间为执行时间
🎨 打卡结果会发送到你的邮箱

🎯 当前仅支持单账号,多账号过几天会出来的

目前仅在我自己的学校试验成功了,听网上说有的学校健康打卡还不一样,具体我也不是很清楚,所以大家首次执行的时候,一定要仔细确认下输出日志,有问题可以在Issues中提问或发送到我的邮箱arecie@qq.com

♨️ 项目开源地址:HCI-AC

2.使用教程

💡 我这里用的是腾讯云-云函数,没有腾讯云的请自行注册,怎么注册请自行百度,这里不多做说明。

2.1 创建云函数

2.1.1 环境选择

创建方式选择自定义创建
函数类型选择事件函数
函数名称地域随便
部署方式选择代码部署
运行方式选择Python3.6
创建环境

2.1.2 代码部署

先去Gitee下载项目压缩包:HCI-AC
下载项目压缩包

下载好不要着急上传,因为Gitee下载的会套一层文件夹,如果直接上传会新建失败,报找不到方法入口的错误
原压缩文件
部署失败

正确的做法是:将下载的压缩包解压后,不带文件夹直接打包,如图
新压缩文件
正确压缩

一定要保证文件是在一级目录下,如果嫌麻烦,我这里也提供有打包好的:HCI-AC

然后在云函数项目代码中选择本地上传zip包,执行方法保持默认的index.main_handler
上传压缩包

2.1.3 高级配置设置

高级配置-环境配置中,内存选多少都行,将执行超时时间设置为900秒,环境变量中,按图上填入TZAsia/Shanghai
高级配置

2.1.4 触发器配置

创建触发器选择自定义创建
触发方式默认定时触发
定时任务名称随便
触发周期选择自定义触发周期
关于Cron表达式,你们可以自行百度是什么,这里我放几条用作参考:
每天早上8点:0 0 8 * * * *
每天上午10:30:0 30 10 * * * *
每天上午9点、下午2点:0 0 9,14 * * * *
会举一反三了吧?
触发器配置

配置好后点完成等它创建好就行了

2.2 代码配置

函数管理-函数代码进行代码配置
函数代码

2.2.1 安装依赖

点击终端-新终端
新终端

依次输入:

cd src
pip install -r requirements.txt -t .

正确执行后目录中会多一些依赖文件
正确依赖

💡 一定要在src目录下执行!

2.2.2 config.py配置

config.py中的手机号phone和密码password填成你自己,
关于邮箱配置,我们可以用QQ邮箱来发邮件,
发件人邮箱user填你自己的QQ邮箱,收件人填要接收邮件的邮箱,发件人授权密码pwd需要在QQ邮箱中申请,申请步骤:

电脑登录QQ邮箱后,点击设置-账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务后,开启服务并点击生成授权码,根据提示获取到授权码填入配置中即可。
邮箱账户
生成授权码

💡 其他字段可以根据注释适当更改。

3.测试和部署

代码配置填完后,就可以测试和部署了。

首先我们先在index.py中的结尾处,加上这一行代码:

# 下面两个参数1随便填,没有影响,但一定要规范!
main_handler(1, 1)

添加测试代码
保存后在终端中输入

# 如果在src目录下第一行就不用输入了
cd src 
python3 index.py

执行代码
如果没报错,会提示验证码已发送,接着最下面会有一行Please Input SMS Code:字样,这时候只要等待短信,短信到了后把验证码填到里面并回车就可以了,不出错的话下面就会提示打卡成功等字样,因为我这边部署过了,所以用不了验证码登录,就不放图了。

将测试好的代码保存后,点击右上角的测试进行调用测试,会提示部署后才能测试,点击
点击测试

代码部署后会自动开始测试,如果最后显示测试成功,说明代码调用没问题
测试成功

测试成功后我们再去日志中看看是否打卡成功(成功的话你的邮箱会收到邮件,去看不看日志已经无所谓了),如果调用成功的日志中有成功打卡成功字样,就说明部署没问题了
打卡成功

4.问题补充

🛠️ 如果日志中成功了,却没收到邮件,请检查邮箱配置是否正确,日志是否有报错。
🛠️ 部署后首次打卡,一定要校验打卡信息是否正确!
🛠️ 因为完美校园会检测设备,所有极有可能造成云函数中打卡后,手机端却提示新设备需要验证码登录,手机端登陆后,服务端也会再次让你用验证码登录,对于这个问题,如果你会的话,可以在config.py中的deviceId设备id改为你手机id,那么这个问题就可以解决了,不会的同学只能老老实实二选一了。
🛠️ 因为主修C#.NetPython写的比较简单,如过代码有问题的话,请及时反馈,谢谢!


2021-08-25 问题补充:
📌 如果执行python3 index.py的时候,报以下错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range

运行报错
只要有'ascii' codec can't encode这样的错误,那就是编码格式的错误,
在Python2中,默认编码格式是ascii,在Python3中,默认编码是utf-8,如果Python的编码格式为ascii时运行index.py,就会出现'ascii' codec can't encode这样的错误,解决方式很简单,只要更改下Python的编码方式为utf-8即可,首先我们要先确认下编码格式:
在控制台输入python3python进入Python中,依次输入以下代码:

import sys
print(sys.getdefaultencoding())

如果输出结果为utf-8,那就不用管了,如果是ascii,那就需要改变下编码方式,
有一点需要说下,云函数的Python版本是2.7和3.6的,如果输入的是python,那么使用的是Python 2.7,如果输入的是python3,那么使用的是Python 3.6,以下方法仅适用于Python2,所以Python 3.6就可以绕过了,反正Python 3.6默认的是utf-8编码,也不需要改
先输入python进入Python中,依次输入以下代码:

import sys
import imp
imp.reload(sys)
sys.setdefaultencoding('utf8')

如果没有报错就可以输入exit()退出Python了
设置编码

如果更改后还是报错,那可能是系统编码也不是utf-8,在控制台输入以下代码就可以解决:

export LC_ALL="en_US.utf8"

🎲 其实好多问题都可在网络上找到,一定要善用百度

版权属于:AreCie
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
14
查看目录

目录

来自 《实现全自动完美校园健康打卡》
评论

  1. 评论头像
    2021-10-10 回复

    博主,我运行index出错啊,但编码格式是utf-8,我在终端就运行不了index文件,就没地方输入验证码,我直接测试,就给我手机号发验证码,但我拿这个验证码有什么用呢,困惑了好几天了,希望博主帮我解决解决

    1. 评论头像
      @小彭友 AreCie 作者
      2021-10-10 回复

      输入这个试试,编码问题解决方法就这几个

      export LC_ALL="en_US.utf8"
  2. 评论头像
    2021-10-04 回复

    感谢博主,一点只有初中学的基础就能搞定了,解决了我天天被团支书diss的烦恼

    1. 评论头像
      @冰糖橙佐料多 AreCie 作者
      2021-10-04 回复

  3. 评论头像
  4. 评论头像
    2021-08-25 回复

    不错,学以致用,加油

    1. 评论头像
      @Mr.Seaning AreCie 作者
      2021-08-25 回复

  5. 评论头像
    AreCie 作者
    2021-08-25 回复

博主很懒,啥都没有