Python 推送信息到wechat
Roy Lv7

前言
最近看到网上有定时推送文章到微信的文章,其实这个小功能我一直在做,包括定时爬取内容用邮件发送等等。
不过网上都是python2.7的版本。对于使用python3的小白可能用起来比较困惑,手动改了一个python3的版本。

python2wechat

#实现环境

请求参数:

参数 必选 类型 说明
date string 格式为:2018-08-01;默认取当天
type string 可选值为last和next;以date日期为准的last返回前一天,next返回后一天。
代码示例
1
2
3
4
5
6
7
8
9
#coding=utf-8
import json
import requests
def get_iciba():
url = 'http://open.iciba.com/dsapi/'
request = requests.get(url)
data = json.loads(request) #将json转换为dict
return data
print(get_iciba())
返回类型:JSON (JSON字段解释:)
属性名 属性值类型 说明
sid string 每日一句id
tts string 音频地址
content string 英文内容
note string 中文内容
love string 每日一句喜欢个数
translation string 词霸小编
picture string 图片地址
picture2 string 大图片地址
caption string 标题
dateline string 时间
s_pv string 浏览数
sp_pv string 语音评测浏览数
tags string 相关标签
fenxiang_img string 合成图片

正常返回示例

1
{"sid":"3081","tts":"http:\/\/news.iciba.com\/admin\/tts\/2018-08-02-day.mp3","content":"I am just a sunflower, waiting for my only sunshine.","note":"我只是一株向日葵,期待着属于自己的那缕阳光。","love":"2154","translation":"投稿人的话:地球在转,人生再转,但我们对美好爱情的执着永远不会变。我们就像一株向日葵,期待着属于自己的那缕阳光。","picture":"http:\/\/cdn.iciba.com\/news\/word\/20180802.jpg","picture2":"http:\/\/cdn.iciba.com\/news\/word\/big_20180802b.jpg","caption":"词霸每日一句","dateline":"2018-08-02","s_pv":"0","sp_pv":"0","tags":[{"id":null,"name":null}],"fenxiang_img":"http:\/\/cdn.iciba.com\/web\/news\/longweibo\/imag\/2018-08-02.jpg"}

登陆微信公众平台借口测试账号

微信公众号测试申请

https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
avatar

扫描后手机端确认登陆

avatar

找到“新增测试模板”,添加模板消息

填写模板标题“每日一句”(可根据需求自己随便填)

avatar

提交后,记住改模版的id,一会用到。

avatar

找到测试二维码,扫描后,右侧出现你的昵称和微信号,记录下微信号

python程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/python
#coding=utf-8
import json
import requests
class iciba:
# 初始化
def __init__(self, wechat_config):
self.appid = wechat_config['appid']
self.appsecret = wechat_config['appsecret']
self.template_id = wechat_config['template_id']
self.access_token = ''
# 获取access_token
def get_access_token(self, appid, appsecret):
url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s' % (appid, appsecret)
r = requests.get(url)
response = r.content.decode()
jdata = json.loads(response)
access_token = jdata['access_token']
self.access_token = access_token
return self.access_token
# 发送消息
def send_msg(self, openid, template_id, iciba_everyday):
msg = {
'touser': openid,
'template_id': template_id,
'url': iciba_everyday['fenxiang_img'],
'data': {
'content': {
'value': iciba_everyday['content'],
'color': '#0000CD'
},
'note': {
'value': iciba_everyday['note'],
},
'translation': {
'value': iciba_everyday['translation'],
}
}
}
jdata = json.dumps(msg)
if self.access_token == '':
self.get_access_token(self.appid, self.appsecret)
access_token = self.access_token
url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s' % str(access_token)
request = requests.post(url, data=jdata)
#response = urllib.request.urlopen(request)
result = request.content.decode()
return json.loads(result)
# 获取爱词霸每日一句
def get_iciba_everyday(self):
url = 'http://open.iciba.com/dsapi/'
request = requests.get(url)
jdata = request.content.decode()
data = json.loads(jdata)
return data
# 为设置的用户列表发送消息
def send_everyday_words(self, openids):
everyday_words = self.get_iciba_everyday()
for openid in openids:
result = self.send_msg(openid, self.template_id, everyday_words)
if result['errcode'] == 0:
print(' [INFO] send to %s is success' % openid)
else:
print(' [ERROR] send to %s is error' % openid)
# 执行
def run(self, openids):
self.send_everyday_words(openids)
if __name__ == '__main__':
# 微信配置
wechat_config = {
'appid': 'XXXXX', #此处填写你的appid
'appsecret': 'XXXX', #此处填写你的appsecret
'template_id': 'XXXXX' #此处填写你的模板消息ID
}
# 用户列表
openids = [
'XXXXXXX',
'XXXXXXX',
#此处填写你的微信号
#'xxxx', #如果有多个用户也可以
#'xxxx',
]
# 执行
icb = iciba(wechat_config)
icb.run(openids)
  • 本文标题:Python 推送信息到wechat
  • 本文作者:Roy
  • 创建时间:2018-08-03 04:56:31
  • 本文链接:https://www.yrzdm.com/2018/08/03/python2wx/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!