事件简述

近日,雨云开始签到需进行人机验证,使得网络上绝大部分Python脚本失灵,但好消息,博主找到了一个自动签到机器人(电报(Telegram)机器人,劝退无法科学上网和无法注册电报的小伙伴了,但这已经是博主目前找到的唯一可行方案了),可以帮助小伙伴们重新解放双手,自动签到!

解决方法

雨云自动签到机器人:

Telegram: Contact @fuckrainyun

机器人使用方法:

总览 | Rainyun Account Bot Docs

对话框发送指令:/crontab create checkin 你的雨云API-Key 即可完成绑定

支持绑定多号,绑定完成就可以实现自动签到啦~

详细介绍

雨云自动签到机器人是指一种通过电报(Telegram)平台运行的自动化工具,帮助用户实现雨云网站的自动签到功能。这种机器人可以解决由于人机验证导致的传统脚本失效的问题。

  • 机器人功能:
    • 自动执行签到任务:用户无需手动操作,机器人会定时或按设定的时间节点自动登录雨云账户并完成签到。
    • 多账号支持:用户可以通过同一个机器人绑定多个雨云账户,实现批量管理不同账户的签到需求。
  • 使用方法:
    • 绑定账户:用户需要发送特定指令(如 /crontab create checkin 你的雨云API-Key)给机器人,以将机器人的服务与自己的雨云账户关联起来。
    • 确认绑定:一旦绑定成功,机器人就会按照预设的时间周期自动执行签到动作,并为每个账户单独记录和执行签到任务。
  • 技术背景:
    • 人机验证机制:近期,雨云网站增加了人机验证步骤,使得传统的Python脚本难以直接模拟用户的登录和签到行为。
    • 电报机器人优势:电报机器人能够通过Telegram平台提供的API接口,与雨云服务器进行交互,从而绕过人机验证的限制,实现自动化签到。
  • 用户群体:
    • 面向无法科学上网或无法注册电报的用户:尽管存在一些技术障碍,但博主认为这是目前唯一可行的解决方案。
    • 对于能够正常使用电报的用户来说,这是一个高效且便捷的选择,能够显著减少手动操作的时间和精力消耗。

脚本解决方法“众筹”

为了让更多小伙伴可以自动签到,还希望有精通Python的大佬更新一下代码,以下提供一下博主之前使用的Python自动签到脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import requests
import json
import time

api_keys = [
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# 在这里放置 "<X-API-KEY>",可放置多项
]
url = "https://api.v2.rainyun.com/user/reward/tasks"

print("Rainyun-AutoSignin-V2 script, by CodeZhangBorui\n[Time] ", end='')
print(time.ctime())

for key in api_keys:
print("# 用 X-API-KEY 登录: " + key[:10] + "*"*22)
headers = {
'x-api-key': key,
'User-Agent': 'Rainyun-AutoSignin/2.0 (https://codezhangborui.eu.org/2023/06/rainyun-auto-python-scripts/)'
}
response = requests.request("GET", url, headers=headers, data={})
result = json.loads(response.text)
print("# 获取可领取任务列表")
undone = []
for task in result['data']:
if(task['Status'] == 0):
print("## - 未完成:" + task['Name'])
elif(task['Status'] == 1):
print("## > 可领取:" + task['Name'] + " | 可获得积分:" + str(task['Points']))
undone.append(task['Name'])
elif(task['Status'] == 2):
print("## V 已领取:" + task['Name'])
else:
print("## ? 未知状态:" + task['Name'] + " | 服务器 DATA:" + str(task))
# undone.append("每日签到")
if(undone == []):
print("# 没有可领取任务!")
else:
for task in undone:
try:
print("## 请求完成任务:" + task, end='')
response = requests.request("POST", url, headers=headers, json={"task_name": task})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, retry in 10 seconds...")
time.sleep(10)
try:
print("## 请求完成任务:" + task, end='')
response = requests.request("POST", url, headers=headers, json={"task_name": task})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, retry in 30 seconds...")
time.sleep(30)
try:
print("## 请求完成任务:" + task, end='')
response = requests.request("POST", url, headers=headers, json={"task_name": task})
result = json.loads(response.text)
print(" | 服务器 DATA:" + str(result))
except:
print(":( Something went wrong, skip this task")
continue
print("")
print("# 程序已结束!")
time.sleep(10)

如有新脚本出现,博主也会第一时间更新文章!