1. 程式人生 > >python開發微信公眾平臺之自定義選單實現

python開發微信公眾平臺之自定義選單實現

首先先獲取access_token,並儲存與全域性之中

def token(requset):
    url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s' % (
    Config.AppID, Config.AppSecret)
    result = urllib2.urlopen(url).read()
    Config.access_token = json.loads(result).get('access_token')
    print 'access_token===%s' % Config.access_token
    return HttpResponse(result)


利用上面獲得的access_token,建立自定義表單

def createMenu(request):
    url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=%s" % Config.access_token
    data = {
     "button":[
      {
           "name":"看美圖",
           "sub_button":[
            {
               "type":"click",
               "name":"美圖",
               "key":"meitu"
            },
            {
               "type":"view",
               "name":"精選",
               "url":"http://m.guju.com.cn/photos"
            },
			{
               "type":"view",
               "name":"回顧",
               "url":"http://m.qzone.com/infocenter?g_f=#2378686916/mine"
            },
			{
               "type":"view",
               "name":"美圖app",
                "url":"http://guju.com.cn/app/app.html"
            }]
		},
		{
           "name":"看案例",
           "sub_button":[
            {
               "type":"click",
               "name":"全部風格",
               "key":"style"
            },
            {
               "type":"click",
               "name":"全部戶型",
               "key":"houseType"
            },
			{
               "type":"click",
               "name":"全部面積",
               "key":"area"
            },
			{
               "type":"view",
               "name":"更多案例",
                "url":"http://m.guju.com.cn/projects"
            }]
		},
		{
            "type":"view",
           "name":"設計申請",
            "url":"http://guju.com.cn/zhuanti/freedesign.jsp?src=3"

		}

	]
}
    #data = json.loads(data)
    #data = urllib.urlencode(data)
    req = urllib2.Request(url)
    req.add_header('Content-Type', 'application/json')
    req.add_header('encoding', 'utf-8')
    response = urllib2.urlopen(req, json.dumps(data,ensure_ascii=False))
    result = response.read()
    return HttpResponse(result)