php 自定义菜单 openid,微信公众平台开发(99) 自定义菜单获取OpenID
關鍵字 微信公眾平臺 自定義菜單 OpenID
作者:方倍工作室
原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html
在這篇微信公眾平臺開發教程中,我們將介紹如何在自定義菜單中獲得用戶的OpenID。
本篇開發教程的實質是微信自定義菜單及OAuth2.0授權的靈活運用。
本文分為以下兩個部分:
擁有高級接口權限時的獲取(基于view事件)
沒有高級接口權限時的獲取(基于click事件)
一、擁有高級接口權限
擁有高級接口權限時,我們使用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。
跳轉后顯示如下:
二、沒有高級接口權限
對于沒有高級接口權限的賬號,就不能使用view事件獲得OpenID,需要使用click事件來實現
實現原理就是獲得接收消息中的FromUserName值,并且在url中構造openid的參數即可
在自定義菜單中響應代碼如下
private function receiveEvent($object)
{
$content = "";
switch ($object->Event)
{
case "subscribe":
$content[] = array("Title"=>"歡迎關注方倍工作室", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
break;
case "CLICK":
switch ($object->EventKey)
{
case "圖文":
$content[] = array("Title"=>"OpenID", "Description"=>"你的OpenID為:".$object->FromUserName, "PicUrl"=>"", "Url" =>"http://m.cnblogs.com/?u=txw1958&openid=".$object->FromUserName);
break;
}
break;
}
if(is_array($content)){
$result = $this->transmitNews($object, $content);
}else{
$result = $this->transmitText($object, $content);
}
return $result;
}
運行后效果如下所示。
Java微信公眾平臺開發_04_自定義菜單
一.本節要點 1.菜單相關實體類的封裝 參考官方文檔中的請求包的內容,對菜單相關實體類進行封裝. 2.數據傳輸格式—JSON 自定義菜單中請求包的數據是Json字符串格式的,請參見:??Java_數據 ...
微信公眾平臺開發—利用OAuth2.0獲取微信用戶基本信息
在借鑒前兩篇獲取微信用戶基本信息的基礎下,本人也總結整理了一些個人筆記:如何通過OAuth2.0獲取微信用戶信息 1.首先在某微信平臺下配置OAuth2.0授權回調頁面: 2.通過appid構造url ...
node微信公眾號開發--設置自定義菜單
var request = require("request"); const querystring = require("querystring"); re ...
微信公眾號開發——創建自定義菜單(PHP版)
微信公眾平臺開發教程--方培工作室,PHP語言版本
準備工作 微信公眾平臺的注冊 介紹如何注冊一個微信公眾賬號. 入門教程 微信公眾平臺開發入門教程 內容:1.申請SAE作為服務器; 2.啟用開發模式; 3.微信公眾平臺PHP SDK; 4.接收發送消 ...
Senparc.Weixin.MP SDK 微信公眾平臺開發教程(九):自定義菜單接口說明
上一篇介紹了如何通過通用接口獲取AccessToken,有了AccessToken,我們就可以來操作 ...
第六篇 :微信公眾平臺開發實戰Java版之如何自定義微信公眾號菜單
我們來了解一下 自定義菜單創建接口: http請求方式:POST(請使用https協議) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...
Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十七):個性化菜單接口說明
前不久微信上線了個性化菜單接口,Senparc.Weixin SDK也已經同步更新. 本次更新升級Senparc.Weixin.MP版本到v13.5.2,依賴Senparc.Weixin版本4.5.4 ...
第九篇 :微信公眾平臺開發實戰Java版之如何實現自定義分享內容
第一部分:微信JS-SDK介紹 微信JS-SDK是微信公眾平臺面向網頁開發者提供的基于微信內的網頁開發工具包. 通過使用微信JS-SDK,網頁開發者可借助微信高效地使用拍照.選圖.語音.位置等手機系統 ...
隨機推薦
圖解集合6:LinkedHashMap
初識LinkedHashMap 上兩篇文章講了HashMap和HashMap在多線程下引發的問題,說明了,HashMap是一種非常常見.非常有用的集合,并且在多線程情況下使用不當會有線程安全問題. 大 ...
使用selenium+phantomJS實現網頁爬取
有些網站反爬蟲技術設計的非常好,很難采用WebClient等技術進行網頁信息爬取,這時可以考慮采用selenium+phantomJS模擬瀏覽器(其實是真實的瀏覽器)的方式進行信息爬取.之前一直使用的 ...
MMORPG大型游戲設計與開發(客戶端架構 part9 of vegine)
時間在人們的生活中是多么重要的東西,如果打亂了時間,不知道這個時間會成什么樣子.在客戶端中,自然也有時間模塊,因為不同的時間可能會處理不同的事情,特別是在追求高度自由化的同時,時間也成為了一個很重要的 ...
【轉】七種常見閾值分割代碼(Otsu、最大熵、迭代法、自適應閥值、手動、迭代法、基本全局閾值法)
http://blog.csdn.net/xw20084898/article/details/17564957 一.工具:VC+OpenCV 二.語言:C++ 三.原理 otsu法(最大類間方差法, ...
【轉】準確理解CSS clear:left/right的含義及實際用途
零.說點什么 好久沒更新了.并不是在折騰什么大作,而是廣度學習與實踐中,加上婚禮等諸多大事,所以產出較少. 今天這篇也只是小作,博客是自己很好的學習工具,只要我學習不止,博客也會不斷更新的. 我們平時 ...
《jQuery風暴》第2章 必須知道的JavaScript知識
第2章 必須知道的JavaScript知識 JavaScript是jQuery應用的基礎,掌握JavaScript這門語言是使用jQuery的基礎條件.本章不會全面細致的講解JavaScript的全部 ...
如何使用UIAutomation進行iOS 自動化測試(Part I)
轉自:http://www.cnblogs.com/vowei/archive/2012/08/10/2631949.html 寫在前面 研究iOS的自動化測試也有些日子了,剛開始的時候,一直苦于找不 ...
React-Native post和get請求
post: fetchData (title) { fetch(REQUEST_URL, { method: 'POST', headers: { 'Accept': 'application/jso ...
Mac 修改用戶名
系統偏好設置 > 用戶與群組 > 解鎖 > 用戶 > 右鍵 > 高級選項 > 全名
python函數傳入參數(默認參數、可變長度參數、關鍵字參數)
1.python中默認缺省參數----定義默認參數要牢記一點:默認參數必須指向不變對象! 1 def foo(a,b=1): 2 print a,b 3 4 foo(2) #2 1 5 foo(3,1 ...
總結
以上是生活随笔為你收集整理的php 自定义菜单 openid,微信公众平台开发(99) 自定义菜单获取OpenID的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经典配色方案:红、橙、黄、绿、青、紫、无
- 下一篇: php 结构体_php基础知识集合