今天小編給大家分享一下Python如何實現京東云無線寶消息推送功能的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
注釋里面有寫,懶得用配置文件了
代碼
# 京東云無線路由寶推送
import requests
import json
import time
import hmac
import hashlib
import base64
import urllib.parse
from datetime import datetime
# 發送釘釘消息
def sendinfo_ding(token,secret,data):
dic=get_timestamp_and_sign_by_secret(secret)
timestamp=dic['timestamp']
sign=dic['sign']
url = 'https://oapi.dingtalk.com/robot/send?access_token=%s×tamp=%s&sign=%s' %(token,timestamp,sign) #你的機器人webhook地址
headers = {'Content-Type': 'application/json'}
f = requests.post(url, data=json.dumps(data), headers=headers)
# 獲取密簽
def get_timestamp_and_sign_by_secret(secret):
timestamp = str(round(time.time() * 1000))
secret_enc = secret.encode('utf-8')
string_to_sign = '{}
{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
return {"timestamp":timestamp,"sign":sign}
# 獲取可用積分
def get_jd_total_avail_point(wskey):
url='https://router-app-api.jdcloud.com/v1/regions/cn-north-1/pinTotalAvailPoint'
headers = {'Content-Type': 'application/json','wskey':wskey}
rsp=requests.get(url,headers=headers)
data=(json.loads(rsp.text)['result']['totalAvailPoint'])
return {'totalAvailPoint':data}
# 獲取積分詳情
def get_jd_detail(wskey):
url='https://router-app-api.jdcloud.com/v1/regions/cn-north-1/todayPointDetail?sortField=today_point&sortDirection=DESC&pageSize=15¤tPage=1'
headers = {'Content-Type': 'application/json','wskey':wskey}
rsp=requests.get(url,headers=headers)
data=(json.loads(rsp.text)['result'])
items=data['pointInfos']
total_today_point=0
total_all_point=0
dic={}
dic['todayDate']=data['todayDate']
dic['items']=[]
for item in items:
mac=item['mac']
today_point=item['todayPointIncome']
all_point=item['allPointIncome']
total_today_point+=int(today_point)
total_all_point+=int(all_point)
dic['items'].append(item)
dic['total_today_point']=total_today_point
dic['total_all_point']=total_all_point
return dic
# 發送京東路由寶日報
def send_jd_router(wskey):
dic=get_jd_detail(wskey)
msg='# 京東路由寶日報
'
msg+='## %s
' %(dic['todayDate'])
msg+=('> 今日獲取總積分為**%d**分,對應金錢為 **%.2f**元
' %(dic['total_today_point'],float(dic['total_today_point'])/100))
for item in dic['items']:
msg+=('>> 設備**%s**
' %(item['mac']))
msg+=('>>> 今日獲取積分為**%s**分,對應金錢為 **%.2f**元
' %(item['todayPointIncome'],float(item['todayPointIncome'])/100))
msg+=('> 累計總積分為 **%s** 分,對應金錢 **%.2f** 元
' %(dic['total_all_point'],float(dic['total_all_point'])/100))
dic=get_jd_total_avail_point(wskey)
msg+=('> 目前可用積分為 **%s** 分,對應金錢 **%.2f** 元' %(dic['totalAvailPoint'],float(dic['totalAvailPoint'])/100))
# token=""
# secret=""
# data = {
# "msgtype": "markdown",
# "markdown": {
# "title":"京東云路由寶日報",
# "text": msg
# },
# }
# sendinfo_ding(token,secret,data)
# 更改server醬發送
server_send_wechat('京東路由寶日報',msg)
#Server醬發送微信
def server_send_wechat(text,desp=''):
# Server醬 Key
key=''
url=('https://sc.ftqq.com/%s.send' %key)
params={
'text':text,
'desp':desp
}
requests.get(url,params)
# 更改為配置文件獲取 todo
wskey=''
while True:
now = datetime.now()
print("任務執行的時間為:"+datetime.strftime(now,"%Y-%m-%d:%H:%M:%S"))
if now.hour==8 and now.minute==0:
send_jd_router(wskey)
time.sleep(60)
以上就是“Python如何實現京東云無線寶消息推送功能”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。