Python——WeRobot(微信公众号开发)
模板消息接口
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
''' 使用规则 1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限; 2、需要选择公众账号服务所处的2个行业,每月可更改1次所选行业; 3、在所选择行业的模板库中选用已有的模板进行调用; 4、每个账号可以同时使用25个模板。 5、当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。 ''' import werobot import requests,json robot = werobot.WeRoBot(token='tteexx') robot.config['APP_SECRET'] = 'fee02e53beed0e49f2c597adcca8cf56' robot.config['APP_ID'] = 'wx94efe9defbf49573' client = robot.client ACCESS_TOKEN = "17_v7LVKYFlHSH5CperVCJQ2TeuzzT_F6oIBVYphwmKyADa3xnjp_GeAX6wxCwpjOMcZvIpzwE1EzNcchtIQh7AHB0W76c7jM2VtQOsBsq9wwbecIF2ARzvIMx0Ng6sbv1sFh5lSycwoTNyCPYbPGFhADACTS" #————————刷新ACCESS_TOKEN—————————— #判断ACCESS_TOKEN 是不是 42001 ,是说明过期,需要刷新 def access(url,ACCESS_TOKEN): url = url + ACCESS_TOKEN req = requests.get(url).text a = eval(req).get('errcode') # print(a) if a == "42001": ACCESS_TOKEN = client.get_access_token() return ACCESS_TOKEN access(url="https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=",ACCESS_TOKEN=ACCESS_TOKEN) print(ACCESS_TOKEN) #———————设置所属行业—————————————————— #assess_token 注意时效 ,行业的参数代码,必选2个行业 url = "https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token="+ str(ACCESS_TOKEN) data = { "industry_id1": "1", "industry_id2": "4" } data_json = json.dumps(data) req = requests.post(url,data_json).text print(req) #————————获取设置的行业信息—————————————— #注意assess_token 注意时效 url = "https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=" + str(ACCESS_TOKEN) req =requests.get(url).text print(req) #————————获取行业模板ID—————————————— #template_id_short:模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式 url = "https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=" + str(ACCESS_TOKEN) data ={"template_id_short":"TM00015"} req =requests.post(url,data).text print(req) #————————获取行业模板列表—————————————— url = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" + str(ACCESS_TOKEN) req =requests.get(url).text print(req) #————————删除模板—————————————— #template_id 公众帐号下模板消息ID url = "https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=" + str(ACCESS_TOKEN) data ={"template_id" : "Dyvp3-Ff0cnail_CDSzk1fIc6-9lOkxsQE7exTJbwUE"} req =requests.post(url,data).text print(req) #————————发送模板消息—————————————— ''' touser 是 接收者openid template_id 是 模板ID url 否 模板跳转链接(海外帐号没有跳转能力) miniprogram 否 跳小程序所需数据,不需跳小程序可不用传该数据 appid 是 所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏) pagepath 否 所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),暂不支持小游戏 data 是 模板数据 color 否 模板内容字体颜色,不填默认为黑色 ''' url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + str(ACCESS_TOKEN) data = { { "touser": "OPENID", "template_id": "ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url": "http://weixin.qq.com/download", "miniprogram": { "appid": "xiaochengxuappid12345", "pagepath": "index?foo=bar" }, "data": { "first": { "value": "恭喜你购买成功!", "color": "#173177" }, "keyword1": { "value": "巧克力", "color": "#173177" }, "keyword2": { "value": "39.8元", "color": "#173177" }, "keyword3": { "value": "2014年9月22日", "color": "#173177" }, "remark": { "value": "欢迎再次购买!", "color": "#173177" } } } } req =requests.post(url,data).text print(req)
自定义菜单栏
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #自定义菜单栏 2 from werobot import WeRoBot 3 import requests 4 #定义app_id,app_secret 5 robot = WeRoBot(token='tteexx',app_id='wx94efe9defbf49573',app_secret= 'fee02e53beed0e49f2c597adcca8cf56') 6 #继承client的方法 7 client = robot.client 8 #获取acceaccess token 9 acceaccess_token = client.grant_token() 10 #刷新acceaccess token 11 acceaccess_token = client.get_access_token() 12 #自定义菜单地址 13 url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=' + str(acceaccess_token) 14 #自定义菜单目录 15 menu = { 16 "button":[ 17 { 18 "type": "view", 19 "name": "百度", 20 "url": "http://www.baidu.com", 21 }, 22 { 23 "name": "腾讯", 24 "sub_button": [ 25 { 26 "type": "view", 27 "name": "腾讯主页", 28 "url": "http://www.tencent.com" 29 }, 30 { 31 "type": "view", 32 "name": "腾讯招聘", 33 "url" : "https://join.qq.com/" 34 }, 35 { 36 "type": "view", 37 "name": "腾讯网", 38 "url": "https://www.qq.com/" 39 }, 40 { 41 "type": "view", 42 "name": "腾讯视频", 43 "url": "https://v.qq.com/" 44 } 45 ] 46 }, 47 { 48 "name": "博客园", 49 "sub_button": [ 50 { 51 "type": "view", 52 "name": "我的博客", 53 "url": "https://www.cnblogs.com/cy708/" 54 }, 55 { 56 "type": "view", 57 "name": "博客园主页", 58 "url": "https://www.cnblogs.com/" 59 } 60 ] 61 } 62 ] 63 } 64 #创建自定义菜单 65 bacg = client.create_menu(menu_data=menu) 66 #提交数据 67 response = requests.post(url,bacg)
注:1、40164报错:未将IP地址添加到白名单中,将提示的IP加入IP地址白名单中
2、48001报错:非授权的账户不可使用自定义菜单栏