最近,小明在參與app改版時,有一個業務場景是:用戶完成指定的任務,判斷當前登陸用戶是否已經關注指定的官方微信公衆號,若是關注會得到相應的獎勵,爲了彌補語言的匱乏,小明偷偷給你們上張圖:程序員
衆所周知,咱們程序員第一次接收到以前沒作過的需求時,第一步確定離不開搜查資料(我以爲國內的產品,百度就夠用),小明也不例外,花了大概五分鐘,一切就瞭然於胸,因而可知,程序員的搜商很重要 😂。ok,廢話少說,翠花,上菜!。小程序
appId
和 appSecret
(注意:appSecret
只展現一次,需保存下來,不然須要重置獲取),access_token
」接口增長IP白名單校驗:只有將IP地址設置爲公衆號的IP白名單,才能成功調用該接口。https請求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
參數 | 是否必須 | 說明 |
---|---|---|
grant_type | 是 | 獲取access_token填寫client_credential |
appid | 是 | 第三方用戶惟一憑證 |
secret | 是 | 第三方用戶惟一憑證密鑰,即appsecret |
正常狀況下,微信會返回下述JSON數據包給公衆號:api
{"access_token":"ACCESS_TOKEN","expires_in":7200}
參數 | 說明 |
---|---|
access_token | 獲取到的憑證 |
expires_in | 憑證有效時間,單位:秒 |
錯誤時微信會返回錯誤碼等信息,JSON數據包示例以下(該示例爲AppID無效錯誤):安全
{"errcode":40013,"errmsg":"invalid appid"}
返回碼 | 說明 |
---|---|
-1 | 系統繁忙,此時請開發者稍候再試 |
0 | 請求成功 |
40001 | AppSecret錯誤或者AppSecret不屬於這個公衆號,請開發者確認AppSecret的正確性 |
40002 | 請確保grant_type字段值爲client_credential |
40164 | 調用接口的IP地址不在白名單中,請在接口IP白名單中進行設置。(小程序及小遊戲調用不要求IP地址在白名單內。) |
詳情查看官方文檔-獲取access_token: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183微信
在關注者與公衆號產生消息交互後,公衆號可得到關注者的OpenID(說明:OpenID就是加密後的微信號,每一個用戶對每一個公衆號的OpenID是惟一的。對於不一樣公衆號,同一用戶的openid不一樣)。特別須要注意的是,若是開發者擁有多個移動應用、網站應用和公衆賬號,可經過獲取用戶基本信息中的unionid來區分用戶的惟一性,由於只要是同一個微信開放平臺賬號下的移動應用、網站應用和公衆賬號,用戶的unionid是惟一的。換句話說,同一用戶,對同一個微信開放平臺下的不一樣應用,unionid是相同的。所以,若是要判斷當前登錄app的微信用戶是否關注官方微信公衆號,咱們要使用的是unionId。須要前往微信開放平臺(open.weixin.qq.com)綁定公衆號後,纔可利用UnionID機制來知足上述需求。app
完整的用戶基本信息包括暱稱、頭像、性別、所在城市、語言和關注時間等。
接口調用請求說明:微信公衆平臺
https請求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
參數 | 是否必須 | 說明 |
---|---|---|
access_token | 是 | 調用接口憑證 |
openid | 是 | 普通用戶的標識,對當前公衆號惟一 |
lang | 否 | 返回國家地區語言版本,zh_CN 簡體,zh_TW 繁體,en 英語 |
正常狀況下,微信會返回下述JSON數據包給公衆號:學習
{ "subscribe": 1, //這就是咱們想要的值哈,解釋以下表格 "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "廣州", "province": "廣東", "country": "中國", "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", "subscribe_time": 1382694957, "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" "remark": "", "groupid": 0, "tagid_list":[128,2], "subscribe_scene": "ADD_SCENE_QR_CODE", "qr_scene": 98765, "qr_scene_str": "" }
參數 | 說明 |
---|---|
subscribe | 用戶是否訂閱該公衆號標識,值爲0時,表明此用戶沒有關注該公衆號,拉取不到其他信息。 |
openid | 用戶的標識,對當前公衆號惟一 |
nickname | 用戶的暱稱 |
sex | 用戶的性別,值爲1時是男性,值爲2時是女性,值爲0時是未知 |
city | 用戶所在城市 |
……網站
錯誤時微信會返回錯誤碼等信息,JSON數據包示例以下(該示例爲AppID無效錯誤):加密
{"errcode":40013,"errmsg":"invalid appid"}
詳情查看官方文檔-獲取用戶基本信息 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839
好了,以上就是今天小明整理給你們的有關公衆號開發的文檔。歡迎你們多多交流學習。