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

 更新时间:2021年05月20日 14:30:22   作者:Alex_Mercer  
这篇文章主要介绍了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 京东云无线宝推送的资料请关注脚本之家其它相关文章!

相关文章

  • python根据文件名批量搜索文件

    python根据文件名批量搜索文件

    大家好,本篇文章主要讲的是python根据文件名批量搜索文件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 在Python中获取两数相除的商和余数方法

    在Python中获取两数相除的商和余数方法

    今天小编就为大家分享一篇在Python中获取两数相除的商和余数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python实现动态循环输出文字功能

    Python实现动态循环输出文字功能

    这篇文章主要介绍了Python实现动态循环输出文字功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 判断python字典中key是否存在的两种方法

    判断python字典中key是否存在的两种方法

    这篇文章主要介绍了判断python字典中key是否存在的两种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python操作Mongodb数据库的方法小结

    Python操作Mongodb数据库的方法小结

    这篇文章主要介绍了Python操作Mongodb数据库的方法,结合实例形式总结分析了Python针对MongoDB数据库的基本模块导入、连接、增删改查及排序等相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • 详细介绍Python中的偏函数

    详细介绍Python中的偏函数

    这篇文章主要介绍了Python中的偏函数,示例代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • 用python实现PDF解密打印文件

    用python实现PDF解密打印文件

    大家好,本篇文章主要讲的是用python实现PDF解密打印文件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Python数据清洗&预处理入门教程

    Python数据清洗&预处理入门教程

    凡事预则立,不预则废,训练机器学习模型也是如此。数据清洗和预处理是模型训练之前的必要过程,否则模型可能就废了。本文是一个初学者指南,将带你领略如何在任意的数据集上,针对任意一个机器学习模型,完成数据预处理工作
    2022-10-10
  • python使用代理IP爬取猫眼电影专业评分数据

    python使用代理IP爬取猫眼电影专业评分数据

    在编写爬虫程序的过程中,IP封锁无疑是一个常见且棘手的问题,尽管网络上存在大量的免费IP代理网站,但其质量往往参差不齐,令人堪忧,本篇文章中介绍一下如何使用Python的Requests库和BeautifulSoup库来抓取猫眼电影网站上的专业评分数据,需要的朋友可以参考下
    2024-03-03
  • pybaobabdt库基于python的决策树随机森林可视化工具使用

    pybaobabdt库基于python的决策树随机森林可视化工具使用

    这篇文章主要为大家介绍了pybaobabdt库基于python的决策树随机森林可视化工具使用探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02

最新评论