想要实现 B 站自动签到打卡,但是不想为闲置资源付费?
Serverless 让你不必买服务器,本地电脑也不用装 Python PHP 这些环境,全云端托管运行!
本文基于 @happy888888/BiliExp 的代码,用 Github Actions 或 CLI 自动部署到腾讯云云函数上。
前提
开通云函数 SCF 的腾讯云账号,在访问秘钥页面获取账号的 TENCENT_SECRET_ID,TENCENT_SECRET_KEY
注意!为了确保权限足够,获取这两个参数时不要使用子账户!需要提前开启云函数服务。此外,腾讯云账户需要实名认证。
一个或多个B站账号,以及登录后获取的SESSDATA,bili_jct,DedeUserID (获取方式参考下图)
获取 cookieDatas(以 Chrome 为例):登录 B 站 -> 右键点击「检查」-> application -> cookies
- SCKEY (可选,用于账号失效时用微信提醒,不用请留空,详情见http://sc.ftqq.com/)
部署方案一:利用 Github Actions
fork Github 项目 https://github.com/happy888888/BiliExp
在fork后的github仓库的 “Settings” –》“Secrets” 中添加”Secrets”,name和value分别为:
- name为”TENCENT_SECRET_ID” value为腾讯云用户SecretID(需要主账户,子账户可能没权限)
- name为”TENCENT_SECRET_KEY” value为阿里云账户SecretKey
- name为”biliconfig” value为B站账号登录信息,格式参照config/config.json文件环境变量添加完毕后如下图:
1
2
3
4
5
6
7
8
9
10
11
12{
"cookieDatas":[
{
"SESSDATA": "",
"bili_jct": "",
"DedeUserID": ""
}
],
"email": "",
"SCKEY": "",
"说明":"cookieDatas由浏览器获取,获取详情见首页说明;email用于邮件消息推送,SCKEY用于微信消息推送,详情见http://sc.ftqq.com/,这两项不用请留空"
}
- 添加完上面 3 个”Secrets”后,进入”Actions” –》”deploy for tencentyun”,点击右边的”Run workflow”即可部署至腾讯云函数(如果出错请在红叉右边点击”deploy for tencentyun”查看部署任务的输出信息找出错误原因)。部署完成后的流程如下所示:
注: 首次fork可能要去actions里面同意使用actions条款,如果”Actions”里面没有”deploy for tencentyun”,点一下右上角的”star”,”deploy for tencentyun”就会出现在”Actions”里面
部署方案二:本地 CLI 部署
安装命令行工具 Serverless Framework
1
npm install -g serverless
下载项目模版代码,并进入模版目录 biliexp-demo
1
2sls create --template-url https://github.com/happy888888/BiliExp.git
cd BiliExp打开
config/config.json
文档,根据说明填入对应内容,cookieDatas 由浏览器获取,email 处填入用于接受通知的邮件名1
2
3
4
5
6
7
8
9
10
11
12{
"cookieDatas":[
{
"SESSDATA": "",
"bili_jct": "",
"DedeUserID": ""
}
],
"email": "",
"SCKEY": "",
"说明":"cookieDatas由浏览器获取,获取详情见首页说明;email用于邮件消息推送,SCKEY用于微信消息推送,详情见http://sc.ftqq.com/,这两项不用请留空"
}通过下列命令完成部署 (如果看部署详情可以加 –debug),部署成功后,每日可自动触发,完成一系列操作
1
sls deploy
测试验证
部署到云函数的好处是,代码可控,便于修改和排查。
验证方式也很简单,进入到腾讯云云函数控制台,可以看到成功部署的函数,点击”测试“可以看到函数调用成功,并输出相应的日志。
tina