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&timestamp=%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 = \'{}\\n{}\'.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&currentPage=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=\'# 京东路由宝日报\\n\'
    msg+=\'## %s \\n\' %(dic[\'todayDate\'])
    msg+=(\'> 今日获取总积分为**%d**分,对应金钱为 **%.2f**元\\n\' %(dic[\'total_today_point\'],float(dic[\'total_today_point\'])/100))
    for item in dic[\'items\']:
        msg+=(\'>> 设备**%s** \\n\' %(item[\'mac\']))
        msg+=(\'>>> 今日获取积分为**%s**分,对应金钱为 **%.2f**元 \\n\\n\' %(item[\'todayPointIncome\'],float(item[\'todayPointIncome\'])/100))
    msg+=(\'> 累计总积分为 **%s** 分,对应金钱 **%.2f** 元 \\n\\n\' %(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编程之微信推送模板消息功能示例

本文实例讲述了Python微信推送模板消息功能。分享给大家供大家参考,具体如下:

具体代码如下:

#!/usr/bin/env python

#-*- coding: utf-8 -*-

import httplib

import json

import MySQLdb

#从数据库中获取access_token

access_token=\"\"

try:

conn=MySQLdb.connect(host=\'192.168.1.1\',user=\'root\',passwd=\'root\',db=\'db_weixin\',port=3306)

cur=conn.cursor()

cur.execute(\'select access_token from weixin_public\')

result=cur.fetchone()

#print result

#print result[0]

access_token=result[0]

cur.close()

conn.close()

except MySQLdb.Error,e:

print \"Mysql Error %d: %s\" % (e.args[0], e.args[1])

#根据接口推送消息

if not access_token is None:

conn = httplib.HTTPConnection(\"api.weixin.qq.com:80\")#微信接口链接

headers = {\"Content-type\":\"application/json\"} #application/x-www-form-urlencoded

params = ({\'touser\' : \"oEGZ4johnKOtayJbnEVeuaZr6zQ0\",#用户openid

\'template_id\' : \'AtFuydv8k_15UGZuFntaBzJRCsHCkjNm1dcWD3A-11Y\',#模板消息ID

\'url\' : \'https://www.jb51.net\',#跳转链接

\"topcolor\" : \"#667F00\",#颜色

\"data\" : {#模板内容

\"first\" : {\"value\" : \"尊敬的710.so : 您的网站https://www.jb51.net (192.168.1.1) 有异常访问\", \"color\" : \"#173177\"},

\"keyword1\" : {\"value\" : \"访问时间 2015-04-05 15:30:59 访问IP 192.168.1.2\", \"color\" : \"#173177\"},

\"keyword2\" : {\"value\" : \"访问链接 https://www.jb51.net\", \"color\" : \"#173177\"},

\"remark\" : {\"value\" : \"访问频率 10/s\", \"color\" : \"#173177\"}

}

}

)

conn.request(\"POST\", \"/cgi-bin/message/template/send?access_token=\"+access_token, json.JSONEncoder().encode(params), headers)#推送消息请求

response = conn.getresponse()

data = response.read()#推送返回数据

if response.status == 200:

print \'success\'

print data

else:

print \'fail\'

conn.close()

希望本文所述对大家Python程序设计有所帮助。

以上就是Python 京东云无线宝消息推送的详细内容,更多关于Python 京东云无线宝推送的资料请关注其它相关文章!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容