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
|
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 = '' 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) 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', 'appsecret': 'XXXX', 'template_id': 'XXXXX' } openids = [ 'XXXXXXX', 'XXXXXXX', ] icb = iciba(wechat_config) icb.run(openids)
|