暑假写的一个修改 / 获取微信公众号菜单的脚本, 具体看微信公众平台的 API:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432
- # -*- coding: utf-8 -*
- import tkMessageBox
- import urllib2
- import JSON
- import sys
- reload(sys)
- sys.setdefaultencoding('UTF-8')
- appID = 'wxa46e26b3d591f9f2' // 测试号信息
- appsecret = '83ee70dbb6dbc1e090971554b1c7981b' // 同上
- menu = { // 菜单信息, 包括一级菜单和二级菜单
- "button":[
- {
- "type": "view", //type 还可以是微信小程序等, 此例子只用了一种 type. 具体可以去看 API
- "name": "百度",
- "url": baidu,
- },
- {
- "name": "腾讯",
- "sub_button": [
- {
- "type": "view",
- "name": "腾讯主页",
- "url": "http://www.tencent.com"
- },
- {
- "type": "view",
- "name": "腾讯招聘",
- "url" : "https://join.qq.com/"
- },
- {
- "type": "view",
- "name": "腾讯网",
- "url": "https://www.qq.com/"
- },
- {
- "type": "view",
- "name": "腾讯视频",
- "url": "https://v.qq.com/"
- }
- ]
- },
- {
- "name": "博客园",
- "sub_button": [
- {
- "type": "view",
- "name": "我的博客",
- "url": "https://www.cnblogs.com/cy708/"
- },
- {
- "type": "view",
- "name": "博客园主页",
- "url": "https://www.cnblogs.com/"
- }
- ]
- }
- ]
- }
- def getMenuRequest():
- gettoken = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appID + '&secret=' + appsecret
- f = urllib2.urlopen(gettoken)
- stringjson = f.read()
- access_token = JSON.loads(stringjson)['access_token']
- posturl = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + access_token
- req = urllib2.Request(posturl)
- data = urllib2.urlopen(req).read()
- data = JSON.loads(data)
- return data
- def createMenuRequest(menu):
- data = JSON.dumps(menu,ensure_ascii=False).encode('utf-8')
- gettoken = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appID + '&secret=' + appsecret
- f = urllib2.urlopen(gettoken)
- stringjson = f.read()
- access_token = JSON.loads(stringjson)['access_token']
- postcreateurl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token
- req = urllib2.Request(postcreateurl)
- response = urllib2.urlopen(req, menu)
- result = response.read()
- result = JSON.loads(result) // 到这步就可以了, 下面的只是提示框显示结果而已
- if result["errcode"] == 0:
- tkMessageBox.showinfo('成功!',"errmsg:"+str(result["errmsg"]))
- else:
- tkMessageBox.showinfo('失败!', "errcode:"+str(result["errcode"])+"\n"+"errmsg:" + str(result["errmsg"]))
来源: http://www.bubuko.com/infodetail-2868675.html