關鍵字 微信公眾平臺 自定義菜單 OpenID作者:方倍工作室原文:http://www.survivalescaperooms.com/txw1958/p/weixin-menu-get-openid.html
在這篇微信公眾平臺開發教程中,我們將介紹如何在自定義菜單中獲得用戶的OpenID。
本篇開發教程的實質是微信自定義菜單及OAuth2.0授權的靈活運用。
本文分為以下兩個部分:
擁有高級接口權限時,我們使用OAuth2.0授權的方式來獲取。
OAuth2.0的詳細設置方法,請參考微信公眾平臺開發(71)OAuth2.0網頁授權
在設置好授權回調頁面域名之后,我們需要構造菜單,為了方便同時講解下一小節,我們菜單構造如下
{    "button": [        {            "type": "click",            "name": "圖文獲取",            "key": "圖文"        },        {            "type": "view",            "name": "授權獲取",            "url": "https://open.weixin.QQ.com/connect/oauth2/authorize?appid=wx0738856156f7323c&redirect_uri=http://israel.sinaapp.com/oauth2/&response_type=code&scope=snsapi_base&state=1#wechat_redirect"        }    ]}菜單的構成中,核心思想在于url是一個授權回調url,這樣才能在菜單點擊的時候使用oauth2.0授權獲得openid
這樣將生成兩個菜單如下

當點擊 授權獲取的時候,將訪問授權頁面,頁面將使用OAuth2.0的方式獲得openid。
代碼可以參考《微信公眾平臺開發最佳實踐》第72頁。
跳轉后顯示如下:

對于沒有高級接口權限的賬號,就不能使用view事件獲得OpenID,需要使用click事件來實現
實現原理就是獲得接收消息中的FromUserName值,并且在url中構造openid的參數即可
在自定義菜單中響應代碼如下
1 PRivate function receiveEvent($object) 2 { 3 $content = ""; 4 switch ($object->Event) 5 { 6 case "subscribe": 7 $content[] = array("Title"=>"歡迎關注方倍工作室", "Descr運行后效果如下所示。
新聞熱點
疑難解答