新闻动态

Python 京东云无线宝消息推送功能

发布日期:2022-05-25 14:23 | 文章来源:源码之家

配置文件

注释里面有写,懒得用配置文件了

代码

# 京东云无线路由宝推送
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 京东云无线宝推送的资料请关注本站其它相关文章!

美国服务器租用

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部