【云函数】乐心健康刷微信支付宝步数(随机步数、微信QQ推送)-10.31更新
本帖最后由 南岸 于 2020-10-31 09:07 编辑# 说在前面
已经解决步数数据不同步第三方应用问题,感谢吾爱破解(https://www.52pojie.cn/?1113315),感谢项目(https://github.com/BBboy01/ChangeStype)
# 测试截图
!(https://i.loli.net/2020/10/30/HyoYs8MNnu9gQjI.png)
!(https://i.loli.net/2020/10/30/ODLjcw3FEpy6ZvK.jpg)
https://static.52pojie.cn/static/image/hrline/1.gif
感谢:@lpy6759
秒刷QQ微信支付宝步数99999步源码,微信最高98800步
https://www.52pojie.cn/thread-1262284-1-1.html
感谢:@可卡因
【基于Python】乐心健康刷微信支付宝步数
https://www.52pojie.cn/thread-1274712-1-1.html
https://static.52pojie.cn/static/image/hrline/1.gif
教程:
0.下载乐心健康APP:官方下载地址:http://www.lifesense.com/app/
1.从应用商店下载乐心健康App,打开软件并选择手机号登录
2.登录之后,点击我的->设置->账号与安全->设置密码(修改密码),设置你自己记得住的密码
3.回到App首页,点击我的->数据共享,绑定你想同步数据的项目注:同步微信运动请按照要求关注【乐心运动】公众号。
4.回到云函数代码,配置好下图参数,运行即可提交步数即可同步至你绑定的所有平台
5.设置好云函数触发规则
运行结果:
```
# -*- coding: utf8 -*-
import requests
import hashlib
import json
import time
import random
requests.packages.urllib3.disable_warnings
def md5(code):
res=hashlib.md5()
res.update(code.encode("utf8"))
return res.hexdigest()
def get_information(mobile,password):
header = {
'Content-Type': 'application/json; charset=utf-8',
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9; SM-G9500 Build/PPR1.180610.011)"
}
url="https://sports.lifesense.com/sessions_service/login?version=4.5&systemType=2"
datas = {
"appType":6,
"clientId":'8e844e28db7245eb81823132464835eb',
"loginName":str(mobile),
"password":md5(str(password)),
"roleType":0
}
response =requests.post(url,headers=header,data=json.dumps(datas))
return response.text
def update_step(step,information):
step =int(step)
url="https://sports.lifesense.com/sport_service/sport/sport/uploadMobileStepV2?version=4.5&systemType=2"
accessToken=json.loads(information)["data"]["accessToken"]
userId=json.loads(information)["data"]["userId"]
#print(json.loads(information))
#print(accessToken)
#print(userId)
#获取当前时间和日期
timeStamp=time.time()
localTime = time.localtime(timeStamp)
strTime = time.strftime("%Y-%m-%d %H:%M:%S", localTime)
print(strTime)
measureTime=strTime+","+str(int(timeStamp))
header = {
'Cookie': 'accessToken='+accessToken,
'Content-Type': 'application/json; charset=utf-8',
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9; SM-G9500 Build/PPR1.180610.011)"
}
sport_datas = {
"list": [
{
"DataSource":2,
#"active":0,
"calories":str(int(step/4)),
#"dataSource":4,
"deviceId":"M_NULL",
"distance":str(int(step/3)),
"exerciseTime":0,
"isUpload":0,
"measurementTime":measureTime,
#"priority":0,
"step": str(step),
"type":2,
"updated":str(int(time.time()*1000)),
"userId":str(userId)
}]
}
result=requests.post(url,headers=header,data=json.dumps(sport_datas))
# print(result.text)
return result.text
def bind(information):
# 设备qrcode列表
qrcodelist = ['http://we.qq.com/d/AQC7PnaOelOaCg9Ux8c9Ew95yumTVfMcFuGCHMY-', 'http://we.qq.com/d/AQC7PnaOysMBFUhD6sByjYwH2MT12Jf2rqr2kFKm', 'http://we.qq.com/d/AQC7PnaOEcpmVUpHtrZBmRUVq4wOOgKw-gfh6wPj', 'http://we.qq.com/d/AQC7PnaOuG5SHierDiEH2AdZLzMt3W__GL8E1MJj', 'http://we.qq.com/d/AQC7PnaOC0S07XFU-c_R1cpxY1mtf8oiXiDrXET7', 'http://we.qq.com/d/AQC7PnaOoraxuZEdkFyVSO6gaTvMjzEzhEfLRXbE', 'http://we.qq.com/d/AQC7PnaOhQxO8K2EuU44QBZ8cRzB2ofP-oFJSU_6', 'http://we.qq.com/d/AQC7PnaOmwgxedHWCLVr-ZyeoLxHtRrHBGDuyH9E', 'ttp://we.qq.com/d/AQC7PnaO4am4196RIo98NYn_vPfHN-Y5j-w9FmSN', 'http://we.qq.com/d/AQC7PnaO2WczbXNLV7PzC7V60i7-iOgLha5Bg4cV', 'http://we.qq.com/d/AQC7PnaOZAUJTMxJ6-gbdrWV6y-jHHofCYFl-Jv0']
accessToken = json.loads(information)["data"]["accessToken"]
userId = json.loads(information)["data"]["userId"]
header = {
'Cookie': 'accessToken=' + accessToken,
'Content-Type': 'application/json; charset=utf-8',
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9; SM-G9500 Build/PPR1.180610.011)"
}
for i in qrcodelist:
datas = {
"qrcode": i,
"userId": userId,
}
url = 'https://sports.lifesense.com/device_service/device_user/bind'
result = requests.post(url,headers=header,data=json.dumps(datas))
if result.status_code == '401':
print('重新登录')
main()
else:
msg = result.json()
print(msg)
if msg.get('msg') == '成功':
print('绑定成功,即将开刷')
break
else:
print('此设备绑定失败,尝试下一个。')
print('所有设备均无法绑定,请自己寻找可用的qrcode,将连接加入列表qr中进行尝试。')
def server_send(msg):
if sckey == '':
return
server_url = "https://sc.ftqq.com/" + str(sckey) + ".send"
data = {
'text': msg,
'desp': msg
}
requests.post(server_url, data=data)
def kt_send(msg):
if ktkey == '':
return
kt_url = 'https://push.xuthus.cc/send/'+str(ktkey)
data = ('步数刷取完成,请查看详细信息~\n'+str(msg)).encode("utf-8")
requests.post(kt_url, data=data)
def execute_walk(phone,password,step):
information=get_information(phone,password)
bind(information)
update_result=update_step(step,information)
result=json.loads(update_result)["msg"]
if result == '成功':
msg = "刷新步数成功!此次刷取" + str(step) + "步。"
print(msg)
server_send(msg)
kt_send(msg)
else:
msg = "刷新步数失败!请查看云函数日志。"
print(msg)
server_send(msg)
kt_send(msg)
def main():
if phone and password and step != '':
execute_walk(phone, password, step)
else:
print("参数不全,请指定参数。或者在调用中直接指定参数")
# -- 配置 --
# ------------------------------
phone = ''# 登陆账号
password = ''# 密码
step = random.randint(8000,10000)# 随机8000-10000步数
sckey = ''# server酱key(可空)
ktkey = ''# 酷推key(可空)
# ------------------------------
def main_handler(event, context):
return main()
if __name__ == '__main__':
main()
```
凉透透了 本帖最后由 南岸 于 2020-10-31 09:09 编辑
更新了11个qrcode,来自@xwj1612 ,感谢大哥。
这11在挂了,各位只好自己找了 supergm 发表于 2021-1-30 20:58
现在乐心健康必须要绑定设备才能共享数据了有办法么虚假绑定么
自己去买一个sn码 南岸 发表于 2020-10-29 22:53
我是试试啊
https://www.52pojie.cn/thread-1280909-1-1.html 这个大佬的可以用就是不能自动 有点烦 tianya0908 发表于 2020-10-30 14:19
感谢终于更新解决了 可以同步了
感谢你们的帮助呀 南岸 发表于 2020-10-29 22:59
我觉得代码没问题,问题出在乐心这个规定上,如果代码有问题,那么;乐心app上的步数就不会变
代码没问题我借了个手环测了一下微信支付宝可以同步 赵大粪 发表于 2020-9-29 16:03
我设了一个定时任务每天早上6点触发的,结果没刷成 我看日志说的是执行成功完全ok,然后换了每分钟触发的试 ...
一天执行一次就可以了,多次执行可能存在问题 感谢!没人和我争第一了 本帖最后由 liguhe 于 2020-9-26 22:58 编辑
显示成功了 谢谢楼主希望楼主可以增加随机步数 弄完了,很有用 liguhe 发表于 2020-9-26 22:53
显示成功了 谢谢楼主希望楼主可以增加随机步数
很简单啊 liguhe 发表于 2020-9-26 22:53
显示成功了 谢谢楼主希望楼主可以增加随机步数
修改完了,支持随机步数了 感谢分享,很有用 step = random.randint(2000,3000)# 随机1000-40000步数
NameError: name 'random' is not defined
3W-4W步很容易被封 可以下调一下吗 liguhe 发表于 2020-9-26 23:57
step = random.randint(2000,3000)# 随机1000-40000步数
NameError: name 'random' is not defined
...
从新复制代码,然后自己改就可以,刚才少引了一个包
step = random.randint(2000,3000)# 随机2000-3000步数 南岸 发表于 2020-9-27 00:01
从新复制代码,然后自己改就可以,刚才少引了一个包
step = random.randint(2000,3000)# 随机2000-3000 ...
OK 测试成功了