简体中文 | English
吹水交流:130516740
原神是我见过的唯一一个游戏本体和签到福利分离的游戏,玩家为了签到还要额外下载米游社 App。
平心而论,目前的每日签到奖励真的不咋地,都知道是蚊子腿。事实上,你完全可以选择无视签到,不签也没啥大的损失;或者选择手动签到,但这样的话哪天忘记打卡了就很头疼。
我承认是馋了这 6W+ 摩拉和紫色经验书的奖励,于是撸了这个项目,实现自动每日签到。
如果觉得本项目对你有帮助,请顺手点个Star
吧QAQ ♥
Genshin Impact Helper 可以自动化为你获取原神每日福利。
- 自动签到 程序会在每天早上自动执行签到流程,也可以随时通过部署教程的
步骤4
手动触发,具体时间参照此处 - 支持同步 自动同步上游仓库,默认关闭
- 支持订阅 可选多种订阅方式,通过配置不同参数开启,每天将签到结果推送给订阅用户
- 支持多账号 不同账号的
Cookie
值之间用#
分隔,如:Cookie1#Cookie2#Cookie3
- 支持多角色 支持绑定官服和B站渠道服角色的米游社账号
- 微博超话签到 推荐本地运行,异地IP可能会失败
- 原神超话领码 自动领取兑换码并推送给订阅用户
- Fork 仓库
- 获取 Cookie
- 添加 Cookie 至 Secrets
- 启用 Action
查看教程
- 项目地址:github/genshin-impact-helper
- 点击右上角
Fork
到自己的账号下
- 将仓库默认分支设置为 master 分支
浏览器打开 https://bbs.mihoyo.com/ys/ 并登录账号
- 按
F12
,打开开发者工具
,找到Network
并点击 - 按
F5
刷新页面,按下图复制Cookie
- 当触发
Debugger
时,可尝试按Ctrl + F8
关闭,然后再次刷新页面,最后复制Cookie
- 复制以下代码
var cookie = document.cookie;
var ask = confirm('Cookie:' + cookie + '\n\n是否复制内容到剪切板?');
if (ask == true) {
copy(cookie);
msg = cookie;
} else {
msg = 'Cancel';
}
- 按
F12
,打开开发者工具
,找到Console
并点击 - 命令行粘贴代码并运行,获得类似
Cookie:xxxxxx
的输出信息 xxxxxx
部分即为所需复制的Cookie
,点击确定复制
- 回到项目页面,依次点击
Settings
-->Secrets
-->New secret
-
建立名为
COOKIE
的 secret,值为步骤2
中复制的Cookie
内容,最后点击Add secret
-
secret名字必须为
COOKIE
! -
secret名字必须为
COOKIE
! -
secret名字必须为
COOKIE
!
Actions 默认为关闭状态,Fork 之后需要手动执行一次,若成功运行其才会激活。
返回项目主页面,点击上方的Actions
,再点击左侧的Genshin Impact Helper
,再点击Run workflow
至此,部署完毕。
当你完成上述流程,可以在Actions
页面点击Genshin Impact Helper
-->build
-->Run sign
查看运行日志,注意签到结果
的提示。
查看结果
如果成功,会输出类似签到结果: 成功: 1 | 失败: 0
的信息:
签到结果: 成功: 1 | 失败: 0
NO.1 账号:
#########2021-01-13#########
🔅[天空岛]1******9
今日奖励: 摩拉 × 8000
本月累签: 13 天
签到结果: OK
############################
#########2021-01-13#########
🔅[世界树]5******1
今日奖励: 精锻用良矿 × 3
本月累签: 2 天
签到结果: OK
############################
如果失败,会输出类似签到结果: 成功: 0 | 失败: 1
的信息:
签到结果: 成功: 0 | 失败: 1
NO.1 账号:
登录失效,请重新登录
同时你会收到一封来自GitHub、标题为Run failed: Genshin Impact Helper - master
的邮件。
注:若开启订阅推送,无论成功与否,都会收到推送通知。
因为接口请求上可能发生一些变化,所以上游源代码需要作出更改来适配这些变化,如果你没有及时同步项目源代码,可能会导致签到失败。
如果你不熟悉 Github 如何同步上游仓库,建议删除你 Fork 的仓库(仓库的Settings - Options - Danger Zone - Delete this repository
),以重新 Fork 的方式来同步更新,不要再乱点 Pull Request了~
这导致了开发者账号泄露后用户被供应链攻击的隐患,而主页的协议中没有明确指出这一点。协议中同时包含了“除此之外,开发者无权获取您的 Cookie”这一陈述,而事实上开发者在此次PR后可以通过更改源代码来在用户未经授权的情况下收集用户Cookie。此前用户在使用本软件时应该默认进行代码审查,然后手动在自己的Repo里PR进行更新。现在的则跳过了这一用户授权更新的动作。
若你了解并接受自动同步带来的可能的风险,请继续往下阅读:
开启同步
项目重新启用自动同步功能,默认关闭。
同步默认使用远程仓库覆盖复刻仓库的方式,如果想保留自己的修改,可以编辑pull.yml
文件,将mergeMethod: hardreset
修改为mergeMethod: merge
。
- 前往
https://pull.git.ci/check/${owner}/genshin-impact-helper
激活配置文件,其中${owner}
修改为你的 Github 用户名 - 安装 Pull app,在安装向导页选择
Only select repositories
,下拉列表选择genshin-impact-helper
,点击Install
完成安装 - 程序会在上游仓库有更新时 3 小时内自动同步
完成激活安装后,你可以随时前往 https://pull.git.ci/process/${owner}/genshin-impact-helper
手动触发同步,其中${owner}
修改为你的 Github 用户名,网页显示Success
则触发成功。
如果没有自动同步,应检查你的仓库是否已经是最新的;或者检查仓库的Pull requests
里是否有以[pull]
开头的合并请求,若有则需要点进去找到Merge pull request
按钮,点击确认合并。
若开启订阅推送,无论成功与否,都会收到推送通知
支持Server酱、酷推、Bark App、Telegram Bot、钉钉机器人、企业微信机器人、企业微信应用、iGot聚合推送、pushplus和自定义推送 单个或多个推送,配置对应参数就会开启对应的推送方式,参数列表详见下文参数
部分。
以Server酱为例:
a.获取 SendKey
b.添加 SendKey 到 Secrets
- 建立名为
SCKEY
的 secret,并添加获取的SendKey
值,即可开启Server酱推送
建立名为PUSH_CONFIG
的 secret,并按你使用的自定义推送的文档将下列json模板填写完整
{
"method": "post",
"url": "",
"data": {},
"text": "",
"code": 200,
"data_type": "data",
"show_title_and_desp": false,
"set_data_title": "",
"set_data_sub_title": "",
"set_data_desp": ""
}
说明:
method: 必填,请求方式.默认: post.
url: 必填,完整的自定义推送链接.
data: 选填,发送的data.默认为空,可自行添加额外参数.
text: 必填,响应体返回的状态码的key.例如: server酱的为errno.
code: 必填,响应体返回的状态码的value.例如: server酱的为0.
data_type: 选填,发送data的方式,可选params|json|data,默认: data.
show_title_and_desp: 选填,是否将标题(应用名+运行状态)和运行结果合并.默认: false.
set_data_title: 必填,填写推送方式data中消息标题的key.例如: server酱的为text.
set_data_sub_title: 选填,填写推送方式data中消息正文的key.有的推送方式正文的key有次级结构,需配合set_data_title构造子级,与set_data_desp互斥.例如: 企业微信中,set_data_title填text,set_data_sub_title填content.
set_data_desp: 选填,填写推送方式data中消息正文的key.例如: server酱的为desp.与set_data_sub_title互斥,两者都填则本项不生效.
其他推送方式请参考对应官方文档获取 KEY 或 TOKEN 等参数,再添加到Secrets
里。
在Settings
-->Secrets
里添加的参数,Name
必须为下列的参数名称之一,Value
则填写对应获取的值
参数名称 | 是否必填 | 默认值 | 说明 |
---|---|---|---|
COOKIE | ✅ | 米游社的Cookie | |
OS_COOKIE | ❌ | 米游社国际版的Cookie | |
WB_COOKIE | ❌ | 新浪微博的Cookie | |
KA_COOKIE | ❌ | 新浪新手卡中心的Cookie | |
SCKEY | ❌ | Server酱的SCKEY | |
COOL_PUSH_SKEY | ❌ | Cool Push的SKEY | |
COOL_PUSH_MODE | ❌ | send | Cool Push的推送方式.可选私聊(send)、群组(group)或者微信(wx). |
BARK_KEY | ❌ | Bark的IP或设备码 | |
BARK_SOUND | ❌ | healthnotification | Bark的推送铃声.在APP内查看铃声列表 |
TG_BOT_API | ❌ | api.telegram.org | Telegram 的API地址 (可以自定义为反向代理服务器) |
TG_BOT_TOKEN | ❌ | Telegram Bot的token.向bot father申请bot时生成 | |
TG_USER_ID | ❌ | Telegram推送对象的用户ID | |
DD_BOT_TOKEN | ❌ | 钉钉机器人WebHook地址中access_token后的字段 | |
DD_BOT_SECRET | ❌ | 钉钉加签密钥.在机器人安全设置页面,加签一栏下面显示的以SEC开头的字符串 | |
WW_BOT_KEY | ❌ | 企业微信机器人WebHook地址中key后的字段 | |
WW_ID | ❌ | 企业微信的企业ID(corpid).在'管理后台'->'我的企业'->'企业信息'里查看 | |
WW_APP_SECRET | ❌ | 企业微信应用的secret.在'管理后台'->'应用与小程序'->'应用'->'自建',点进某应用里查看 | |
WW_APP_USERID | ❌ | @all | 企业微信应用推送对象的用户ID.在'管理后台'->'通讯录',点进某用户的详情页里查看 |
WW_APP_AGENTID | ❌ | 企业微信应用的agentid.在'管理后台'->'应用与小程序'->'应用',点进某应用里查看 | |
IGOT_KEY | ❌ | iGot的KEY | |
PUSH_PLUS_TOKEN | ❌ | pushplus一对一推送或一对多推送的token | |
PUSH_PLUS_USER | ❌ | 一对一推送 | pushplus一对多推送的群组编码 |
PUSH_CONFIG | ❌ | JSON格式的自定义推送配置.详见 订阅-自定义推送 部分说明 | |
CRON_SIGNIN | ❌ | 30 9 * * * | DOCKER脚本的自动签到计划任务 |
如果需要重构或增加额外功能可参考以下数据:
查看数据
# 角色信息
roles = Roles(cookie).get_roles()
roles = {
'retcode': 0,
'message': 'OK',
'data': {
'list': [
{
'game_biz': 'hk4e_cn',
'region': 'cn_gf01',
'game_uid': '111111111',
'nickname': '酸柚子',
'level': 48,
'is_chosen': False,
'region_name': '天空岛',
'is_official': True
}
]
}
}
# 签到信息
infos = Sign(cookie).get_info()
infos = [
{
'retcode': 0,
'message': 'OK',
'data': {
'total_sign_day': 5,
'today': '2021-01-05',
'is_sign': True,
'first_bind': False,
'is_sub': False,
'month_first': False
}
}
]
使用 Genshin Impact Helper 即表明,您知情并同意:
- 此代码通过模拟浏览器使用 Cookies 登录米游社网页,点击页面完成签到来实现签到。功能通过官方公开的 API 实现,并非游戏外挂
- 用户之 Cookie 被储存于 Github 服务器,只供本项目使用。若 Github 服务器被攻破,则您的 Cookie 有遭到泄露的风险。除此之外,开发者无权获取您的 Cookie;即使是用户,一旦创建完成
Secrets
,也无法再次从中查看 Cookie - Genshin Impact Helper 不会对您的任何损失负责,包括但不限于奖励回收、账号异常、刻晴被削、矿产被挖、核弹爆炸、第三次世界大战等