MHYY-AutoCheckin - 米哈云游(云原神)自动签到脚本食用指南
米哈云游(云原神)自动签到脚本食用指南
本文已过期!最新的文档请参阅MHYY-AutoCheckin - 米哈云游(云原神)自动签到脚本食用指南(第二代)
如果你正在使用旧版的脚本,请更新到新版!
在指南开始之前,请确保你有一颗聪明的头脑和可以折腾的时间,否则请等时机合适再进行配置!
在使用过程中如果遇到什么问题,请前往Issues · GamerNoTitle/MHYY (github.com)发起新的issue来提出,不要在本页面的评论区提出问题(因为追踪性太差了)
对于正在使用本脚本的用户,请注意:每次云原神更新后(一般会跟着本体大版本更新就更一次),请把自己的配置中的version
修改为最新的云原神版本,否则可能会出现不可预料的错误;并且请及时更新脚本,在自己的仓库点击Fetch upstream
然后点击Merge
即可!)
现在这个值是作为fallback值使用,只有当官方的版本号服务器不可用时才会用到这个值,所以有空就改,不改也可以
用前必读
⚠️请不要进行宣传,谢谢!一旦发现宣传就删库跑路!使用过程中如果出现bug可能会使用您的日志进行错误追踪,详情请见隐私政策
快速开始
先点个STAR,我们马上开始我们的教程:D
青龙面板
如果你选择使用青龙面板,那么你需要执行以下操作
首先点开订阅管理,把这个命令粘贴进去
1 | ql repo http://gogs.console.bili33.top/GamerNoTitle/MHYY-AutoCheckin.git "main" "" "" |
然后他会自动识别,并填入相应的内容,你只需要修改定时规则即可,名称按照自己需要修改
如果上面这个命令贴进去后因为网络原因(有可能我的gogs宕机了)或者其他原因拉取不了,可以改成下面这个
1 | ql repo https://github.com/GamerNoTitle/MHYY.git "main" "" "" |
优先还是建议用gogs的那个,谁知道啥时候Github就给我仓库封了呢~
保存以后点击运行按钮更新一下订阅
在定时任务中你就能找到刚刚更新的内容,但是还不能够使用,我们还需要配置依赖和环境变量
我们需要两个python3依赖,分别是requests
和sentry-sdk
,如图填写并安装
然后点到环境变量,新建名为config
的变量(可以改,请见青龙面板不使用config作为变量名)把我们的配置填进去,点击保存
配置应该如下(单个账号)
1 | { |
程序已经支持多个账号了,多个账号你需要按照下面这个格式填写
1 | [ |
保存后你就可以在定时任务中运行试试看效果了~
青龙面板不使用config作为变量名
先点开脚本管理,找到你对MHYY-AutoCheckin
的命名,然后打开它的文件夹,找到main.py
文件,在大约23行的位置找到以下内容
1 | # Running in Github Action, use this to get the config |
把括号里的config
改成你想要的名字,然后配置环境变量的时候就直接改成你配置的名字就可以了~
Github Action 版本
原仓库在2023/02/03收到Github通知封禁,镜像仓库在GamerNoTitle/MHYY: Disabled Action, if you need it, enable it by yourself (github.com),本项目仓库的Github Action已经被我手动禁用,如果需要使用Action版本,请将~/.github/workflows
文件夹内的两个文件后面的.disabled
删掉!
首先你需要先打开本脚本的仓库GamerNoTitle/MHYY: 米哈云游(云原神)自动签到脚本,让你每天都拿到15分钟~ (github.com),点击右上角的fork按钮,接着点击下面绿色的Create fork
来创建一个分支
然后点击上面的Settings
,导航到Secrets
->Actions
页面下,点击New repository secret
(如图)
将以下内容进行填充后加入名字为config
的Secret中(内容获取请参照配置内容获取一节)
1 | { |
阿里云函数版本
首先你得先下载本仓库的代码文件,点击右上角绿色的Code
,然后点击Download ZIP
,把压缩包下载后解压到一个你知道的地方,我们一会会用到
先打开阿里云函数,点左边的函数服务,然后顶上选择地区,随便选(但是最好是国内)
点击创建服务来建立一个新的服务
紧接着创建一个新的函数,设置方法如下面几张图
创建后会自动打开阿里云函数的vscode,在这里,点击上面的Terminal
,点击New Terminal
(也可以直接快捷键Ctrl + Shift + `)
打开以后在里面输入下面的命令
1 | chmod +x ./preinstall.sh && ./preinstall.sh |
运行完以后,打开config.json
,把自己的配置内容填进去即可,然后点击部署代码
一定要先把配置丢进config.json
再部署代码!一定要先把配置丢进config.json
再部署代码!一定要先把配置丢进config.json
再部署代码!
要是不确定能不能使用,可以点一下顶上的测试函数,看看能不能使用
腾讯云函数版本(不推荐,腾讯要收钱了,可以在阿里云函数使用,正常是不会用完你的免费额度的)
首先你得先下载本仓库的代码文件,点击右上角绿色的Code
,然后点击Download ZIP
,把压缩包下载后解压到一个你知道的地方,我们一会会用到
先打开腾讯云函数,点左边的函数服务,然后顶上选择地区,随便选(但是最好是国内)
点击新建来建立一个新的函数
函数的名称可以随便填,但是你也得符合腾讯云指定的规则;但是运行环境一定一定要选择Python 3.6(因为Python 3.7不带我们需要的环境,还需要自己装非常麻烦)
接着往下,提交方法选择本地上传文件夹
,然后选择你刚刚解压的文件夹里面的SCF
文件夹,接着重点来啦:执行方法里面填写为index.handler
(一定要改)
接着点击下面的触发器配置,选择自定义创建
,触发方式选择定时触发
,触发周期选择每1天
,下面的启用
要打勾,点击完成
创建完成后进入配置界面,先点击顶上的函数配置
,点击编辑
,往下面拉找到初始化超时时间
和执行超时时间
,把这两个数字往高了调
然后点击顶上的函数代码
,等底下加载完后点击config.json
,把你的信息填进去
然后打开终端,输入以下代码安装依赖
1 | chmod +x ./preinstall.sh && ./preinstall.sh |
一定要先把配置丢进config.json
再部署代码!一定要先把配置丢进config.json
再部署代码!一定要先把配置丢进config.json
再部署代码!
往下拉,先点击部署
,然后点测试
,只要测试成功了就是部署完成了
其他云函数
其他的云函数有如下
用法其实跟阿里云函数和腾讯云函数大差不差,看着用就行了,不会就开issue问
配置解释(配置内容获取)
token
是在云原神登录后用于验证的tokentype
(应该)是设备类型,安卓好像是2
,iOS设备用户是1
,但是目前还不支持iOS设备,请看这里version
是云原神的版本(每次更新以后记得改一下,不然可能会出问题不用改了,现在改成从官方服务器获取版本号)android
安卓版本,例如我的红米K40的安卓版本是Android 12,就填入12
,应该是只有Android有,因为手上只有Android设备,如果你愿意用iOS设备进行测试的话,请将相关内容发邮件到GamerNoTitle@outlook.comdeviceid
设备在米哈游注册的id(格式为UUID,例如d76fb4b4-b898-4093-990d-c57ebb40f29b
)devicename
设备的名称devicemodel
设备的型号(请注意:deviceid
devicename
devicemodel
尽量是同一台手机的内容,因为指不定那天米忽悠就对这三个东西进行校验了,当然你要用公共的我也不阻止对吧)appid
暂时不清楚,从我目前手上各用户提交的统计信息来看,好像是云原神
这个应用在米哈游的应用id(貌似不会变)analytics
因为关于这个东西的信息太少,所以会把除了token
以外的东西发送到我的云端服务器以便于分析,如果你不想分享你的信息(包括设备id、设备名称、设备型号等),请将这个设置为false
配置完成后,我们点开顶上的Actions,然后点绿色的那个按钮
然后点击左侧列表中的两个脚本,点Enable workflow
来启用
然后我们点开左侧的AutoCheckin
,然后点Run workflow
来运行,只要运行结果打了绿色的勾勾就一般就没啥问题
自动保活
事实上,对于现版本的Github Action,只需要把KeepActionAlive
打开即可,下面的这些操作是旧版本的Action所需要的
因为Github在仓库没有push三个月后会停用仓库的一切Action,所以说我们需要进行保活。
在启用KeepActionAlive
之前,你需要创建一个用来push更改的GITHUB_TOKEN
右上角点击自己的头像,然后点击Settings
,然后在左侧的导航栏找到Developer Settings
然后在左边找到Personal Access Tokens
,点击Generate new token
生成一个token,名字填写为GITHUB_TOKEN
把过期时间设置为No expiration
,然后依次勾选下面内容
然后点最下面的绿色按钮Generate token
即可
在Action页面启用KeppActionAlive
即可!脚本会在每个月的1号自动推送更新从而达到保活的目的。
配置内容获取
因为云原神是在手机上运行的,所以你需要安装一个手机上的抓包软件(例如HttpCanary,或者如果你能够用fiddler电脑运行去抓也行)
一定要记得装抓包软件提供的证书,要不然解不了SSL连接,一定要先登录并成功进去了再启动抓包软件!!!
这里面只要是个HTTP链接,随便一个里面都有我们所需要的东西,这里我就点开了一个链接,在请求里面有所有我们需要的东西,而解释我都写在图片里面了
其中,这里面的东西与变量有如下的对应关系
1 | { |
version
不是必要的,在a4e5f06..7bd5d44
commit中,使用了米忽悠自己的api获取云原神的最新版本号,此处填写version只是作为获取不到最新版本号时的fallback值
对于token
(应该说写作token
念作cookie
)由以下几部分组成:
ai
一个数值,具体含义未知ci
一个数值,具体含义未知oi
一个数值,推测是米游社IDct
一串字符,具体作用未知,推测为认证使用si
一串字符,具体作用未知,推测为认证使用bi
一串字符,推测为服务器通道
只要把对应的内容填到配置中即可!对于字符串类型的内容请使用双引号而不是单引号,json不认单引号(在错误收集中发现有此类现象,故特别提出)
请不定时自己上线米哈云游(云原神)来清理签到的提醒消息,不然会一直堆积着,就要点好多次了
堆积的信息可以在运行结果中查看
iOS设备用户须知
因为米忽悠在请求头中的cms-signature
键中写了用了hmac-sha1
加密方法,这种加密方法需要要加密的信息
和密钥
,这两个东西我这边目前都不能确定(其实有要加密的信息
就可以去猜密钥,但是目前不清楚是对什么进行了加密),而且在CONTENT-MD5
中,还对请求的MD5进行了校验(这个好搞,主要是前面那个),最后还有一个时间Date
的请求头(目前猜是发出请求的时间),总的来说就是不好搞,如果你手上是iOS设备,并且你愿意用iOS设备进行测试的话,请将相关内容发邮件到GamerNoTitle@outlook.com,最好是抓到的所有包都截图发一下(我好进行判断),并且抓多几次(感谢多玩幻灵qwq愿意与我共享他的抓包数据,这是我第一次收到iOS设备有关信息,谢谢你的共享:D)
已知iOS设备抓包会包含以下内容(以log获取为例)[感谢@多玩幻灵qwq在QQ给我提供的完整请求]
1 | Host: log-upload.mihoyo.com |
Q&A
青龙面板里面怎么用 (因仓库被封所以issue没了,请看青龙面板一节)
使用Action版本,把配置写入config.json
内,然后根据这个链接里面的做法对脚本进行小修改就可以用了
为什么要把信息作为统计数据发到统计服务器? 统计服务器已关闭,本条目已失效
因为我手头上的信息实在太少了,而且按照米忽悠的习惯,他们的数据如果没有庞大的数据量的话很难分析出一个所以然来,所以我这里需要大量的数据。如果你不想共享你的数据,请将配置中的analytics
设置为false
。
SCF版本出现报错
报错内容为:wait_time = random(1, 300) # Random wait time TypeError: 'module' object is not callable
更新一下脚本就好了,在commit1665099
已经修好了(感谢@Elletear发现这个问题并提交PR#5)
KeepActionAlive运行失败(权限不足)
具体如图所示,这个要得益于昨天Github的一个更新GitHub Actions - Updating the default GITHUB_TOKEN permissions to read-only | GitHub Changelog
在仓库里面点击Settings
=> Actions
=> General
,往下拉找到Workflow permissions
,把原来的Read repository contents and packages permissions
改为上面的Read and write permissions
,然后点击下面的Save
键就可以了
发现了bug/无法使用
请前往Issues · GamerNoTitle/MHYY (github.com)发起新的issue来提出,不要在本页面的评论区提出问题(因为追踪性太差了)