Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 29 additions & 27 deletions githubRun.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,33 +93,33 @@ def getLoginToken(code, is_phone):
}

r2 = requests.post(url, data=data).json()
login_token = r2["token_info"]["login_token"]
print("login_token获取成功!")
print(login_token)
userid = r2["token_info"]["user_id"]
print("userid获取成功!")
print(userid)

return login_token, userid


def getAppToken(login_token):
r"""3、获取app_token

:param login_token: login_token
:return: app_token
"""

url = f"https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.com&login_token={login_token}"
response = requests.get(url).json()
app_token = response['token_info']['app_token']
app_token = r2['token_info']['app_token']
print("app_token获取成功!")
print(app_token)
return app_token

return userid, app_token


# def getAppToken(login_token):
# r"""3、获取app_token
#
# :param login_token: login_token
# :return: app_token
# """
#
# url = f"https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.# com&login_token={login_token}"
# response = requests.get(url).json()
# app_token = response['token_info']['app_token']
# print("app_token获取成功!")
# print(app_token)
# return app_token


def brushStep(app_token, user_id, step):
r"""4、刷步数
r"""3、刷步数

:param app_token: login_token
:param user_id: 用户id
Expand Down Expand Up @@ -176,25 +176,27 @@ def main(_user, _password, _step_min, _step_max):
is_phone, code = loginGetCode(user, password)
if code == 0:
return "登录失败"
# 获取login_token
login_token, userid = getLoginToken(code, is_phone)

app_token = getAppToken(login_token)
app_token, userid = getLoginToken(code, is_phone)
# app_token = getAppToken(login_token)
# 刷步数
brush, message = brushStep(app_token, userid, step)
# brush,
message = brushStep(app_token, userid, step)
# 根据服务器时间设置,如果你是在github执行,时间为UTC时间,即北京时间-8
time_bj = datetime.datetime.today() + datetime.timedelta(hours=8)
now = time_bj.strftime("%Y-%m-%d %H:%M:%S")
result = f"[{now}]\n账号:{user[:3]}****{user[7:]}\n修改步数({step})[" + message + "]\n"
result = f"""
日期:{now}
账号:{user[:3]}****{user[7:]}
修改步数为:{step}
结果为:{message[1]}"""
print(result)
return result


if __name__ == '__main__':
user = sys.argv[1]
password = sys.argv[2]
pushplus_token = sys.argv[3]
##刷步数
res = main(user, password, 5000, 8000)
# 推送消息
pushMessage(pushplus_token, "刷步接口调用", res)
pushMessage(pushplus_token, "刷步接口调用", res)
69 changes: 34 additions & 35 deletions motion.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,11 @@ function headerHandler($curl, $headerLine)
}

/**
* 2、获取login_token和user_id
* 2、获取app_token和user_id
* @param $code
* code
* @return object
* token_info对象,里面成员有login_token和user_id
* token_info对象,里面成员有app_token和user_id
*/
function getLoginToken($code)
{
Expand Down Expand Up @@ -151,35 +151,34 @@ function getLoginToken($code)
* 3、获取app_token
* @param $login_token
* @return string
*/
function getAppToken($login_token)
{

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com,api-mifit.huami.com,app-analytics.huami.com&login_token=" . $login_token,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
return "";
} else {
$res = json_decode($response);
return $res->token_info->app_token;
}
}

*function getAppToken($login_token)
*{
*
* $curl = curl_init();
*
* curl_setopt_array($curl, [
* CURLOPT_URL => "https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com,api-mifit.huami.com,app-analytics. *huami.com&login_token=" . $login_token,
* CURLOPT_RETURNTRANSFER => true,
* CURLOPT_ENCODING => "",
* CURLOPT_MAXREDIRS => 10,
* CURLOPT_TIMEOUT => 30,
* CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
* CURLOPT_CUSTOMREQUEST => "GET",
* ]);
*
* $response = curl_exec($curl);
* $err = curl_error($curl);
*
* curl_close($curl);
*
* if ($err) {
* return "";
* } else {
* $res = json_decode($response);
* return $res->token_info->app_token;
* }
*}
*/
/**
* 刷步数
* @param $app_token
Expand Down Expand Up @@ -239,10 +238,11 @@ function main($user, $password, $step)
}
$token_info = getLoginToken($code);
//获取login_token
$login_token = $token_info->login_token;
//$login_token = $token_info->login_token; 已无需获取login_token
$user_id = $token_info->user_id;
$app_token = $token_info->app_token;
//获取app_token
$app_token = getAppToken($login_token);
//$app_token = getAppToken($login_token); 此行代码已弃用
//刷步数
$res = brushStep($app_token, $user_id, $step);
return $res;
Expand All @@ -265,5 +265,4 @@ function main($user, $password, $step)
//输出结果
$now = date('Y-m-d h:i:s', time());
$meg = "[$now]\n账号:" . substr("$user", 0, 3) . "****" . substr("$user", 7) . "\n修改步数($step)[$s]";
echo $meg;

echo $meg;
88 changes: 54 additions & 34 deletions motion.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ def loginGetCode(user, password):


def getLoginToken(code, is_phone):
r"""2、获取login_token
r"""2、获取uerid 和 app_token

:param code: code
:param is_phone: 是否手机号
:return: login_token, userid
:return: app_token, userid
"""

url = "https://account.huami.com/v2/client/login"
Expand Down Expand Up @@ -92,33 +92,36 @@ def getLoginToken(code, is_phone):
}

r2 = requests.post(url, data=data).json()
login_token = r2["token_info"]["login_token"]
print("login_token获取成功!")
print(login_token)
# login_token = r2["token_info"]["login_token"]
# print("login_token获取成功!")
# print(login_token)
userid = r2["token_info"]["user_id"]
print("userid获取成功!")
print(userid)

return login_token, userid


def getAppToken(login_token):
r"""3、获取app_token

:param login_token: login_token
:return: app_token
"""

url = f"https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.com&login_token={login_token}"
response = requests.get(url).json()
app_token = response['token_info']['app_token']
app_token = r2['token_info']['app_token']
print("app_token获取成功!")
print(app_token)
return app_token

return userid, app_token


# def getAppToken(login_token):
# r"""3、获取app_token
#
# :param login_token: login_token
# :return: app_token
# """
#
# url = f"https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.# com&login_token={login_token}"
# response = requests.get(url).json()
# app_token = response['token_info']['app_token']
# print("app_token获取成功!")
# print(app_token)
# return app_token


def brushStep(app_token, user_id, step):
r"""4、刷步数
r"""3、刷步数

:param app_token: login_token
:param user_id: 用户id
Expand Down Expand Up @@ -164,33 +167,50 @@ def pushMessage(token, title, message):
res = requests.get(url).json()


def main(_user, _password, _step_min, _step_max):
user = str(_user)
password = str(_password)
step = str(random.randint(_step_min, _step_max))
print("已设置为随机步数:" + step)
def main(account):
min_steps = account.get("min", DEFAULT_MIN)
max_steps = account.get("max", DEFAULT_MAX)
user = str(account.get("user"))
password = str(account.get("password"))
step = str(random.randint(min_steps, max_steps))
print(f"已设置为随机步数: {step}")
if user == '' or password == '':
return "请正确填写用户名或密码"
# 获取code
is_phone, code = loginGetCode(user, password)
if code == 0:
return "登录失败"
# 获取login_token
login_token, userid = getLoginToken(code, is_phone)
userid, app_token= getLoginToken(code, is_phone)

app_token = getAppToken(login_token)
# app_token = getAppToken(login_token)
# 刷步数
brush, message = brushStep(app_token, userid, step)
# brush,
message = brushStep(app_token, userid, step)
# 根据服务器时间设置,如果你是在github执行,时间为UTC时间,即北京时间-8
time_bj = datetime.datetime.today() + datetime.timedelta(hours=8)
now = time_bj.strftime("%Y-%m-%d %H:%M:%S")
result = f"[{now}]\n账号:{user[:3]}****{user[7:]}\n修改步数({step})[" + message + "]\n"
result = f"""
日期:{now}
账号:{user}
修改步数为:{step}
结果为:{message[1]}"""
print(result)
return result


if __name__ == '__main__':
##刷步数
res = main("xxxxxx@xx.com", "123456", 1000, 2000)
# 设定步数默认值
DEFAULT_MIN = 4000
DEFAULT_MAX = 6000
# 设定账号, 按示例格式增加,可以单独设定步数范围。
accounts = [
{"user": "xxxxxx@123.com", "password": "123456", "min": 6000, "max": 8000},
{"user": "xxxxxx@xx.com", "password": "654321"}
]
# 开始逐个账号刷步数
for account in accounts:
res = main(account)
print('-' * 20)
# res = main("xxxxxx@xx.com", "123456", 1000, 2000)
#推送消息
pushMessage("pushplus的token", "刷步接口调用", res)
pushMessage("pushplus的token", "刷步接口调用", res)