目錄
[toc]
微信公眾號(hào)遷移
正常的公眾號(hào)遷移直接通過(guò)微信操作就可以背零,如下圖莲蜘。但是因?yàn)閡db數(shù)據(jù)里面存的是遷移前公眾號(hào)的openid以及unionid,需要自行獲取新舊openid以及unionid。
舊的用戶信息要在遷移之前獲取爬凑,第三步點(diǎn)擊同意之后就公眾號(hào)的接口就調(diào)不通了
相應(yīng)網(wǎng)址:客服文檔
前期準(zhǔn)備(APPID,APPSECRET,access_token)
名詞解釋
開(kāi)發(fā)者ID(AppID):開(kāi)發(fā)者ID是公眾號(hào)開(kāi)發(fā)識(shí)別碼,配合開(kāi)發(fā)者密碼可調(diào)用公眾號(hào)的接口能力。
AppID可以在 【微信公眾平臺(tái)-開(kāi)發(fā)-基本配置】查看
開(kāi)發(fā)者密碼(AppSecret):開(kāi)發(fā)者密碼是校驗(yàn)公眾號(hào)開(kāi)發(fā)者身份的密碼惫企,具有極高的安全性。切記勿把密碼直接交給第三方開(kāi)發(fā)者或直接存儲(chǔ)在代碼中陵叽。如需第三方代開(kāi)發(fā)公眾號(hào)狞尔,請(qǐng)使用授權(quán)方式接入。
AppSecret現(xiàn)在不顯示巩掺,需要把一開(kāi)始申請(qǐng)的AppSecret保存下來(lái)偏序,要不就只能重置
access_token:通過(guò)AppID以及AppSecret獲取可以得到的調(diào)用接口的token,接口文檔的接口基本都需要的一個(gè)參數(shù)胖替,通過(guò)調(diào)接口獲取
PS: 有次數(shù)限制研儒,一天2000次豫缨,一次獲取的token兩小時(shí)內(nèi)有效
接口說(shuō)明
https請(qǐng)求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
grant_type | 是 | 獲取access_token填寫(xiě)client_credential |
appid | 是 | 第三方用戶唯一憑證 |
secret | 是 | 第三方用戶唯一憑證密鑰,即appsecret |
返回說(shuō)明
{"access_token":"ACCESS_TOKEN","expires_in":7200}
錯(cuò)誤說(shuō)明以及返回碼看文檔
獲取新舊openid以及unionid
這里只說(shuō)明公眾號(hào)文檔接口端朵,文檔地址如下: 微信公眾號(hào)官方文檔
因?yàn)槲臋n里面沒(méi)有一次性獲取所有信息的接口好芭,因此需要單獨(dú)獲取各個(gè)信息,大概流程如下圖:
1.獲取用戶openid
對(duì)應(yīng)微信接口地址如下: 獲取用戶列表
公眾號(hào)可通過(guò)本接口來(lái)獲取帳號(hào)的關(guān)注者列表冲呢,關(guān)注者列表由一串OpenID(加密后的微信號(hào)舍败,每個(gè)用戶對(duì)每個(gè)公眾號(hào)的OpenID是唯一的)組成。一次拉取調(diào)用最多拉取10000個(gè)關(guān)注者的OpenID碗硬,可以通過(guò)多次拉取的方式來(lái)滿足需求瓤湘。
PS:1.open_id列表并不是一直都添加在列表的最后面,如果是新關(guān)注的用戶基本不會(huì)在列表最后恩尾,因此拉粉絲的時(shí)候建議一次性拉取完
2.接口有調(diào)用次數(shù)限制,如下補(bǔ)充
接口相關(guān)說(shuō)明
http請(qǐng)求方式: GET(請(qǐng)使用https協(xié)議)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
access_token | 是 | 調(diào)用接口憑證 |
next_openid | 否 | 第一個(gè)拉取的OPENID弛说,不填默認(rèn)從頭開(kāi)始拉取 |
next_openid官方文檔寫(xiě)著必須,但是不添加也可以調(diào)通接口翰意,效果如下:
2.獲取用戶詳細(xì)信息(unionid)
對(duì)應(yīng)微信接口地址如下: 獲取用戶詳細(xì)信息
在關(guān)注者與公眾號(hào)產(chǎn)生消息交互后木人,公眾號(hào)可獲得關(guān)注者的OpenID(加密后的微信號(hào),每個(gè)用戶對(duì)每個(gè)公眾號(hào)的OpenID是唯一的冀偶。對(duì)于不同公眾號(hào)醒第,同一用戶的openid不同)。公眾號(hào)可通過(guò)本接口來(lái)根據(jù)OpenID獲取用戶基本信息进鸠,包括昵稱稠曼、頭像、性別客年、所在城市霞幅、語(yǔ)言和關(guān)注時(shí)間。
請(qǐng)注意量瓜,如果開(kāi)發(fā)者有在多個(gè)公眾號(hào)司恳,或在公眾號(hào)、移動(dòng)應(yīng)用之間統(tǒng)一用戶帳號(hào)的需求绍傲,需要前往微信開(kāi)放平臺(tái)(open.weixin.qq.com)綁定公眾號(hào)后扔傅,才可利用UnionID機(jī)制來(lái)滿足上述需求。
PS: 1.有調(diào)用次數(shù)限制
2.一次最多只能獲取100個(gè)用戶的詳細(xì)信息
3.這個(gè)接口返回有點(diǎn)慢烫饼,100個(gè)用戶基本需要兩秒
接口相關(guān)說(shuō)明
http請(qǐng)求方式: GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
access_token | 是 | 調(diào)用接口憑證 |
openid | 是 | 普通用戶的標(biāo)識(shí)猎塞,對(duì)當(dāng)前公眾號(hào)唯一 |
lang | 否 | 返回國(guó)家地區(qū)語(yǔ)言版本,zh_CN 簡(jiǎn)體枫弟,zh_TW 繁體邢享,en 英語(yǔ) |
返回說(shuō)明
正常情況下,微信會(huì)返回下述JSON數(shù)據(jù)包給公眾號(hào):
{
"subscribe": 1,
"openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
"nickname": "Band",
"sex": 1,
"language": "zh_CN",
"city": "廣州",
"province": "廣東",
"country": "中國(guó)",
"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": ""
}
參數(shù) | 說(shuō)明 |
---|---|
subscribe | 用戶是否訂閱該公眾號(hào)標(biāo)識(shí)淡诗,值為0時(shí)骇塘,代表此用戶沒(méi)有關(guān)注該公眾號(hào)伊履,拉取不到其余信息。 |
openid | 用戶的標(biāo)識(shí)款违,對(duì)當(dāng)前公眾號(hào)唯一 |
nickname | 用戶的昵稱 |
sex | 用戶的性別唐瀑,值為1時(shí)是男性,值為2時(shí)是女性插爹,值為0時(shí)是未知 |
city | 用戶所在城市 |
country | 用戶所在國(guó)家 |
province | 用戶所在省份 |
language | 用戶的語(yǔ)言哄辣,簡(jiǎn)體中文為zh_CN |
headimgurl | 用戶頭像,最后一個(gè)數(shù)值代表正方形頭像大性病(有0力穗、46、64气嫁、96当窗、132數(shù)值可選,0代表640*640正方形頭像)寸宵,用戶沒(méi)有頭像時(shí)該項(xiàng)為空崖面。若用戶更換頭像,原有頭像URL將失效梯影。 |
subscribe_time | 用戶關(guān)注時(shí)間巫员,為時(shí)間戳。如果用戶曾多次關(guān)注甲棍,則取最后關(guān)注時(shí)間 |
unionid | 只有在用戶將公眾號(hào)綁定到微信開(kāi)放平臺(tái)帳號(hào)后简识,才會(huì)出現(xiàn)該字段。 |
remark | 公眾號(hào)運(yùn)營(yíng)者對(duì)粉絲的備注感猛,公眾號(hào)運(yùn)營(yíng)者可在微信公眾平臺(tái)用戶管理界面對(duì)粉絲添加備注 |
groupid | 用戶所在的分組ID(兼容舊的用戶分組接口) |
tagid_list | 用戶被打上的標(biāo)簽ID列表 |
subscribe_scene | 返回用戶關(guān)注的渠道來(lái)源财异,ADD_SCENE_SEARCH 公眾號(hào)搜索,ADD_SCENE_ACCOUNT_MIGRATION 公眾號(hào)遷移唱遭,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 掃描二維碼呈驶,ADD_SCENE_PROFILE_ LINK 圖文頁(yè)內(nèi)名稱點(diǎn)擊拷泽,ADD_SCENE_PROFILE_ITEM 圖文頁(yè)右上角菜單,ADD_SCENE_PAID 支付后關(guān)注袖瞻,ADD_SCENE_OTHERS 其他 |
qr_scene | 二維碼掃碼場(chǎng)景(開(kāi)發(fā)者自定義) |
qr_scene_str | 二維碼掃碼場(chǎng)景描述(開(kāi)發(fā)者自定義) |
錯(cuò)誤說(shuō)明以及返回碼看文檔
3. 通過(guò)舊openid獲取新openid
對(duì)應(yīng)微信接口地址如下: 轉(zhuǎn)換openid
接口說(shuō)明
openid的API接口如下司致,可在 帳號(hào)遷移審核完成后 開(kāi)始調(diào)用,并最多保留15天聋迎。若帳號(hào)遷移沒(méi)完成脂矫,調(diào)用時(shí)無(wú)返回結(jié)果或報(bào)錯(cuò)。帳號(hào)遷移15天后霉晕,該轉(zhuǎn)換接口將會(huì)失效庭再、無(wú)法拉取到數(shù)據(jù)捞奕。
http請(qǐng)求方式: POST
URL:http://api.weixin.qq.com/cgi-bin/changeopenid?access_token=xxxxx
請(qǐng)求數(shù)據(jù):
{
"from_appid":"xxxxxxxx",//此處為原帳號(hào)的appid
"openid_list":[
"oEmYbwN-n24jxvk4Sox81qedINkQ",
"oEmYbwH9uVd4RKJk7ZZg6SzL6tTo"
]
//需要轉(zhuǎn)換的openid,即第1步中拉取的原帳號(hào)用戶列表拄轻,這些必須是舊賬號(hào)目前關(guān)注的才行颅围,否則會(huì)出錯(cuò);一次最多100個(gè)恨搓,不能多院促。
}
這里的請(qǐng)求是 HTTP 坑!斧抱!
返回?cái)?shù)據(jù):
{
"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"http://這個(gè)openid目前沒(méi)有關(guān)注舊公眾號(hào)
}
]
}
4. 獲取新的unionid
同第二步常拓,用新的openid去獲取舊的openid
補(bǔ)充
公眾號(hào)接口調(diào)用次數(shù)表
百度來(lái)的圖如下,具體請(qǐng)根據(jù)公眾號(hào)后臺(tái)-開(kāi)發(fā)-接口權(quán)限查看辉浦。
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布弄抬!