一、authorizer概述
在WeChat公眾號的生態中,一個服務號或訂閱號往往對應多個第三方應用,這些應用都需要使用公眾號的API接口進行開發。在API接口中,涉及到公眾號授權的相關信息,例如access_token, jsapi_ticket 等。這些信息都是通過微信開放平台中的第三方授權管理來進行維護的,而這個授權管理的核心就是authorizer。
通過authorizer,第三方應用可以使用公眾號API,並且還能獲取到公眾號用戶的信息。同時,公眾號也能通過authorizer來管理和監控第三方應用。在接下來的內容中,我們將通過多個方面來深入探討authorizer的功能和用法。
二、獲得authorizer_access_token
在第三方應用中,訪問公眾號API的時候需要填寫一個access_token,而在使用存在authorizer的公眾號中,則需要填寫 authorizer_access_token。authorizer_access_token的獲取方式與access_token類似,需要先獲取authorizer_refresh_token,再通過接口調用來刷新並獲取新的authorizer_access_token。
authorizer_refresh_token可以在使用授權方令牌獲取授權方信息接口中進行獲取。獲取到之後,就可以使用以下接口來獲取authorizer_access_token。
https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token? component_access_token=COMPONENT_ACCESS_TOKEN POST數據: { "component_appid":"xxxx", "authorizer_appid":"xxxx", "authorizer_refresh_token":"xxxx" }
接口返回結果中包含authorizer_access_token和expires_in字段,expires_in 表示authorizer_access_token的超時時間,單位為秒。獲取到authorizer_access_token之後,就可以進行後續的API調用了。
三、獲取用戶信息
在使用公眾號API的過程中,獲取用戶信息是必不可少的。但是,在使用authorizer的情況下,獲取用戶信息的方式與普通公眾號不同。
首先,我們需要在接口中使用openid參數來指定需要獲取信息的用戶。openid可以通過微信授權登陸接口獲取到,其中也涉及到使用到authorizer。
https://open.weixin.qq.com/connect/oauth2/authorize? appid=APPID &redirect_uri=REDIRECT_URI &response_type=code &scope=snsapi_base &state=123#wechat_redirect
通過上述接口,用戶可以使用微信登陸並授權的方式來獲得openid。獲得到openid之後,就可以使用以下接口來獲取用戶信息了。
https://api.weixin.qq.com/cgi-bin/user/info? access_token=ACCESS_TOKEN &openid=OPENID &lang=zh_CN
使用上述接口可以獲取到用戶的基本信息,包括用戶昵稱、頭像等。同時,如果需要獲取更多的信息,例如用戶的所在地、性別等,還需要進行授權。
四、消息管理
在使用authorizer的情況下,第三方應用也可以對公眾號的消息進行管理,包括接收和發送消息。
對於消息的接收,我們可以使用以下接口來進行處理。
https://api.weixin.qq.com/cgi-bin/message/custom/send? access_token=ACCESS_TOKEN POST數據: { "touser": "OPENID", "msgtype": "text", "text": { "content": "這是一條測試消息" } }
使用上述接口可以向指定用戶發送一條文本消息,如果需要發送其他類型的消息,只需將msgtype參數設置為其他相應的值即可。
對於消息的接收,我們需要在第三方應用的開發環境下啟用消息兼容性接口,在該接口處理的函數中,會接受到公眾號發送過來的消息,然後進行相關的處理。下面是接收消息的代碼示例。
$msg = file_get_contents('php://input'); $msg_data = simplexml_load_string($msg, 'SimpleXMLElement', LIBXML_NOCDATA);
五、菜單管理
在使用authorizer的情況下,也可以通過接口來進行公眾號的菜單管理。需要注意的是,當使用authorizer時,需要在自定義菜單接口中指定authorizer_access_token參數,而不是access_token。
在使用自定義菜單的過程中,我們需要通過以下接口來獲取菜單列表。
https://api.weixin.qq.com/cgi-bin/menu/get? access_token=ACCESS_TOKEN&agentid=AGENTID
通過上述接口能夠獲取到當前公眾號菜單的列表,如果需要進行修改,則可以通過以下接口進行更新。
https://api.weixin.qq.com/cgi-bin/menu/create? access_token=ACCESS_TOKEN&agentid=AGENTID POST數據: { "button":[ { "type":"click", "name":"測試1", "key":"V1001_TODAY_MUSIC" }, { "name":"菜單", "sub_button":[ { "type":"view", "name":"搜索", "url":"http://www.soso.com/" }, { "type":"view", "name":"視頻", "url":"http://v.qq.com/" }, { "type":"click", "name":"贊一下我們", "key":"V1001_GOOD" }] }] }
六、總結
在本文中,我們對authorizer的使用進行了深入的探討。通過多個方面的分析,我們熟悉了在使用authorizer時所需要的各種操作和接口。只有在掌握了這些操作和接口之後,才能更好的進行公眾號的開發和管理。
原創文章,作者:FVWT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131498.html