用戶
用戶信息的獲取是微信開發(fā)中比較常用的一個功能了,以下所有的用戶信息的獲取與更新,都是 基于微信的 openid
的,并且是已關(guān)注當(dāng)前賬號的,其它情況可能無法正常使用。
獲取用戶信息
獲取單個:
$user = $officialAccount->user->get($openId);
獲取多個:
$users = $officialAccount->user->select([$openId1, $openId2, ...]);
獲取用戶列表
$officialAccount->user->list($nextOpenId = null); // $nextOpenId 可選
使用示例:
<?php
$users = $officialAccount->user->list();
獲取結(jié)果 (result) 如下:
{
"total": 2,
"count": 2,
"data": {
"openid": [
"OPENID1",
"OPENID2"
]
},
"next_openid": "NEXT_OPENID"
}
修改用戶備注
$officialAccount->user->remark($openId, $remark); // 成功返回 boolean
使用示例:
$officialAccount->user->remark($openId, "僵尸粉");
拉黑用戶
<?php
$officialAccount->user->block(['openidxxxxx']);
// 或者拉黑多個用戶
$officialAccount->user->block(['openid1', 'openid2', 'openid3', ...]);
取消拉黑用戶
<?php
$officialAccount->user->unblock(['openidxxxxx']);
// 或者取消拉黑多個用戶
$officialAccount->user->unblock(['openid1', 'openid2', 'openid3', ...]);
獲取黑名單
$officialAccount->user->blacklist($beginOpenid = null); // $beginOpenid 可選
賬號遷移 openid 轉(zhuǎn)換
賬號遷移請從這里了解:https://kf.qq.com/product/weixinmp.html#hid=2488
微信用戶關(guān)注不同的公眾號,對應(yīng)的 OpenID
是不一樣的,遷移成功后,粉絲的 OpenID
以目標(biāo)帳號(即新公眾號)對應(yīng)的 OpenID
為準。但開發(fā)者可以通過開發(fā)接口轉(zhuǎn)換 OpenID
,開發(fā)文檔可以參考: 提供一個 openid
轉(zhuǎn)換的 API
接口,當(dāng)帳號遷移后,可以通過該接口:
- 將原帳號粉絲的
openid
轉(zhuǎn)換為新帳號的openid
。 - 將有授權(quán)關(guān)系用戶的
openid
轉(zhuǎn)換為新帳號的openid
。 - 將卡券關(guān)聯(lián)用戶的
openid
轉(zhuǎn)換為新帳號的openid
。
- 原帳號:準備要遷移的帳號,當(dāng)審核完成且管理員確認后即被回收。
- 新帳號:用來接納粉絲的帳號。新帳號在整個流程中均能正常使用。
一定要按照下面的步驟來操作。
- 一定要在原帳號被凍結(jié)之前,最好是準備提交審核前,獲取原帳號的用戶列表。如果沒有原帳號的用戶列表,用不了轉(zhuǎn)換工具。如果原賬號被回收,這時候也沒辦法調(diào)用接口獲取用戶列表。
- 轉(zhuǎn)換
openid
的API
接口如下,可在帳號遷移審核完成后開始調(diào)用,并最多保留15
天。若帳號遷移沒完成,調(diào)用時無返回結(jié)果或報錯。帳號遷移15
天后,該轉(zhuǎn)換接口將會失效、無法拉取到數(shù)據(jù)。
$officialAccount->user->changeOpenid($oldAppId, $openidList);
返回值樣例:
{
"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"
}
]
}