一、基礎說明
這裡說的“通用介面(CommonAPIs)”是使用微信公眾賬號一系列高階功能的必備驗證功能(應用於開發模式)。
我們通過微信後臺唯一的憑證,向通用介面發出請求,得到訪問令牌(AccessToken),然後使用訪問令牌去使用各項需要身份驗證的高階功能,例如自定義選單、獲取使用者資訊、單發訊息、群發訊息等等。
目前所有的服務號和通過認證的訂閱號,都可以在微信公眾賬號後臺的【功能】>【高階功能】>【開發模式】下的“開發者憑據”一欄找到AppId和AppSecret兩個字串,這兩個字串就是獲得AccessToken的依據,因此需要嚴格保密,如果發現有洩露的可能,或者出於安全策略,應當使用邊上的“重置”按鈕對AppSecret進行隨機生成(注意AppId不會變化),並且同時修改程式中的對應引數。
二、介面使用
在Senparc.Weixin.MP SDK中,通用介面的基本方法都在Senparc.Weixin.MP.CommonAPIs名稱空間下:
檔案說明如下:
AccessTokenContainer.cs - 一個AccessToken容器(幫助自動更新AccessToken,因為每一個AccessToken都有一個有效期)
CommonApi.cs - 提供獲取AccessToken的通用方法
CommonApi.Menu.cs - 自定義選單所有介面
CommonJsonSend.cs - 對通用介面返回型別的一些封裝處理
有關上述類的詳細方法及說明可以看開原始碼的註釋: https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP/Senparc.Weixin.MP/CommonAPIs
有了AccessTokenContainer,我們可以直接這樣獲取AccessToken:
if (!AccessTokenContainer.CheckRegistered(appId))//檢查是否已經註冊 { AccessTokenContainer.Register(appId, appSecret);//如果沒有註冊則進行註冊 } var result = AccessTokenContainer.GetAccessTokenResult(appId); //獲取AccessToken結果
當然也可以更加簡單地一步到位:
var result = AccessTokenContainer.TryGetAccessToken(appId, appSecret);
上述獲取到的result有access_token和expires_in兩個屬性,分別儲存了AccessToken字串和過期時間(秒),如果使用AccessTokenContainer.TryGetAccessToken()方法,則可以徹底忽略的expires_in存在,如果過期,系統會自動重新獲取。
有了AccessToken,我們就可以進行一系列豐富的高階功能操作了,當然也包括自定義選單,請看隨後文章的介紹(見《Senparc.Weixin.MP SDK 微信公眾平臺開發教程(九):自定義選單介面說明》)。
當然,SDK也已經提供了全自動的AccessToken處理機制,包括自動處理(預期外的)AccessToken過期情況,開發者在呼叫高階介面的時候只需要提供AppId,忽略AccessToken的存在,相關內容請見《Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十六):AccessToken自動管理機制》。
注意:在v14.2.1中,所有Senparc.Weixin.MP下的Container,名稱空間已經從 Senparc.Weixin.MP.CommonAPIs 改為了 Senparc.Weixin.MP.Containers:[公告]Senparc.Weixin.MP v14.2.1 升級說明
系列教程索引
地址:http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(一):微信公眾平臺註冊
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(二):成為開發者
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(三):微信公眾平臺開發驗證
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(四):Hello World
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(五):使用Senparc.Weixin.MP SDK
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(六):瞭解MessageHandler
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(七):解決使用者上下文(Session)問題
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(八):通用介面說明
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(九):自定義選單介面說明
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十):多客服介面說明
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十一):高階介面說明
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十二):OAuth2.0說明
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十三):地圖相關介面說明
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十四):請求訊息去重
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十五):訊息加密
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十六):AccessToken自動管理機制
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十七):個性化選單介面說明
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十八):Web代理功能
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十九):MessageHandler 的未知型別訊息處理
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(二十):使用選單訊息功能