这段代码的主要功能是使用阿里云盘(Aliyun Drive)的 API 来进行自动签到,并通过 Telegram Bot 发送签到结果的消息通知。下面是代码的主要部分解释:
- 在代码的开头,设置了 Telegram Bot 的 API Token 和目标聊天 ID。你需要将这些值替换为你自己的 Bot Token 和聊天 ID。
- 定义了一个
send_message_to_telegram
函数,用于发送消息到 Telegram。 - 定义了一个
aliyun_drive_sign_in
函数,用于进行阿里云盘的签到操作。该函数接受一个刷新令牌(refresh token)的列表作为参数。 - 在
aliyun_drive_sign_in
函数中,遍历传入的刷新令牌列表,对每个刷新令牌进行签到操作。 - 首先使用刷新令牌获取访问令牌(access token)。
- 如果成功获取到 access token,则进行签到操作,发送 POST 请求到
https://member.aliyundrive.com/v1/activity/sign_in_list
。 - 解析返回的 JSON 数据,获取签到天数
signInCount
。 - 使用签到天数向
https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile
发送 POST 请求领取奖励。 - 解析返回的 JSON 数据,获取奖励名称
reward_name
和奖励描述reward_description
。 - 构建签到成功和获得奖励的消息,然后通过
send_message_to_telegram
函数将消息发送到 Telegram。 - 最后,通过调用
aliyun_drive_sign_in
函数来执行多个账号的签到操作。
需要注意的是,代码中的 refresh_tokens
列表需要被替换为有效的阿里云盘账号刷新令牌。确保你已经替换了 Telegram Bot 的 API Token 和聊天 ID,以便能够成功接收签到结果的消息通知。此外,代码中没有对异常情况进行详细处理,你可能需要根据实际情况添加适当的错误处理机制。
import requests
import time
# Telegram Bot的API Token
telegram_api_token = "你的TG_bot token"
# Telegram目标聊天ID(可以是私人对话或群组ID)
telegram_chat_id = "你的chat_id"
def send_message_to_telegram(message):
url = f"https://api.telegram.org/bot{telegram_api_token}/sendMessage"
data = {
"chat_id": telegram_chat_id,
"text": message,
}
requests.post(url, data=data)
def aliyun_drive_sign_in(refresh_tokens):
for refresh_token in refresh_tokens:
if refresh_token != "":
# 刷新token获取access_token
res = requests.post("https://auth.aliyundrive.com/v2/account/token",
json={
"grant_type": "refresh_token",
"refresh_token": refresh_token
})
res = res.json()
access_token = res.get('access_token')
if access_token is None:
send_message_to_telegram("refresh_token错误,请重新填写refresh_token")
else:
try:
# 进行签到
res2 = requests.post("https://member.aliyundrive.com/v1/activity/sign_in_list",
json={"_rx-s": "mobile"},
headers={"Authorization": 'Bearer ' + access_token})
res2 = res2.json()
signInCount = res2.get('result', {}).get('signInCount', 0)
# 领取奖励
res3 = requests.post("https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
json={
"signInDay": signInCount
},
headers={"Authorization": 'Bearer ' + access_token})
res3 = res3.json()
reward_name = res3.get("result", {}).get("name")
reward_description = res3.get("result", {}).get("description")
# 构建签到成功和获得奖励的信息
message = f"账号:{res['user_name']},签到成功,本月累计签到{signInCount}天,获得奖励:{reward_name},{reward_description}"
send_message_to_telegram(message)
except:
send_message_to_telegram("签到或领取奖励失败")
print("\n")
# 多账号refresh_token值列表
refresh_tokens = ["token1", "token2", "token3"]
aliyun_drive_sign_in(refresh_tokens)
评论前必须登录!
注册