不关注公众号可以获取openid吗_微信公众号粉丝迁移
目錄
[toc]
微信公眾號遷移
正常的公眾號遷移直接通過微信操作就可以,如下圖。但是因為udb數據里面存的是遷移前公眾號的openid以及unionid,需要自行獲取新舊openid以及unionid。
舊的用戶信息要在遷移之前獲取,第三步點擊同意之后就公眾號的接口就調不通了
相應網址:客服文檔
前期準備(APPID,APPSECRET,access_token)
名詞解釋
開發者ID(AppID):開發者ID是公眾號開發識別碼,配合開發者密碼可調用公眾號的接口能力。
AppID可以在 【微信公眾平臺-開發-基本配置】查看
開發者密碼(AppSecret):開發者密碼是校驗公眾號開發者身份的密碼,具有極高的安全性。切記勿把密碼直接交給第三方開發者或直接存儲在代碼中。如需第三方代開發公眾號,請使用授權方式接入。
AppSecret現在不顯示,需要把一開始申請的AppSecret保存下來,要不就只能重置
access_token:通過AppID以及AppSecret獲取可以得到的調用接口的token,接口文檔的接口基本都需要的一個參數,通過調接口獲取
獲取Access_token接口文檔地址
PS: 有次數限制,一天2000次,一次獲取的token兩小時內有效
接口說明
https請求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
返回說明
{"access_token":"ACCESS_TOKEN","expires_in":7200}錯誤說明以及返回碼看文檔
獲取新舊openid以及unionid
這里只說明公眾號文檔接口,文檔地址如下: 微信公眾號官方文檔
因為文檔里面沒有一次性獲取所有信息的接口,因此需要單獨獲取各個信息,大概流程如下圖:
1.獲取用戶openid
對應微信接口地址如下: 獲取用戶列表
公眾號可通過本接口來獲取帳號的關注者列表,關注者列表由一串OpenID(加密后的微信號,每個用戶對每個公眾號的OpenID是唯一的)組成。一次拉取調用最多拉取10000個關注者的OpenID,可以通過多次拉取的方式來滿足需求。
PS:1.open_id列表并不是一直都添加在列表的最后面,如果是新關注的用戶基本不會在列表最后,因此拉粉絲的時候建議一次性拉取完
2.接口有調用次數限制,如下補充
接口相關說明
http請求方式: GET(請使用https協議) https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENIDnext_openid官方文檔寫著必須,但是不添加也可以調通接口,效果如下:
2.獲取用戶詳細信息(unionid)
對應微信接口地址如下: 獲取用戶詳細信息
在關注者與公眾號產生消息交互后,公眾號可獲得關注者的OpenID(加密后的微信號,每個用戶對每個公眾號的OpenID是唯一的。對于不同公眾號,同一用戶的openid不同)。公眾號可通過本接口來根據OpenID獲取用戶基本信息,包括昵稱、頭像、性別、所在城市、語言和關注時間。
請注意,如果開發者有在多個公眾號,或在公眾號、移動應用之間統一用戶帳號的需求,需要前往微信開放平臺(http://open.weixin.qq.com)綁定公眾號后,才可利用UnionID機制來滿足上述需求。
PS: 1.有調用次數限制
2.一次最多只能獲取100個用戶的詳細信息
3.這個接口返回有點慢,100個用戶基本需要兩秒
接口相關說明
http請求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN返回說明
正常情況下,微信會返回下述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": "" }錯誤說明以及返回碼看文檔
3. 通過舊openid獲取新openid
對應微信接口地址如下: 轉換openid
接口說明
openid的API接口如下,可在 帳號遷移審核完成后 開始調用,并最多保留15天。若帳號遷移沒完成,調用時無返回結果或報錯。帳號遷移15天后,該轉換接口將會失效、無法拉取到數據。
http請求方式: POST URL:http://api.weixin.qq.com/cgi-bin/changeopenid?access_token=xxxxx 請求數據: {"from_appid":"xxxxxxxx",//此處為原帳號的appid"openid_list":["oEmYbwN-n24jxvk4Sox81qedINkQ","oEmYbwH9uVd4RKJk7ZZg6SzL6tTo"]//需要轉換的openid,即第1步中拉取的原帳號用戶列表,這些必須是舊賬號目前關注的才行,否則會出錯;一次最多100個,不能多。 }這里的請求是 HTTP 坑!!
返回數據:
{"errcode": 0,"errmsg": "ok","result_list": [{"ori_openid": "oEmYbwN-n24jxvk4Sox81qedINkQ","new_openid": "o2FwqwI9xCsVadFah_HtpPfaR-X4","err_msg": "ok"},{"ori_openid": "oEmYbwH9uVd4RKJk7ZZg6SzL6tTo","err_msg": "ori_openid error"//這個openid目前沒有關注舊公眾號}] }4. 獲取新的unionid
同第二步,用新的openid去獲取舊的openid
補充
公眾號接口調用次數表
百度來的圖如下,具體請根據公眾號后臺-開發-接口權限查看。
本文由博客一文多發平臺 OpenWrite 發布!
總結
以上是生活随笔為你收集整理的不关注公众号可以获取openid吗_微信公众号粉丝迁移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: r语言随机森林回归预测_从零实现回归随机
- 下一篇: OpenFlow协议