前言:
對(duì)于新接入騰訊云IM即時(shí)通信的開發(fā)者來說,接入過程中,難免會(huì)遇到一些問題,接下來筆者將針對(duì)使用騰訊云IM接入廠商離線推送可能遇到的收不到推送問題,整理一份排障手冊(cè)。
#騰訊云IM接入廠商推送完整流程:
第一步:先去廠商開放平臺(tái)注冊(cè)應(yīng)用并開啟推送服務(wù)
第二步:客戶端集成廠商推送SDK
第三步:去廠商開放平臺(tái)測(cè)試推送下發(fā),客戶端能否正常收到(以上為騰訊IM接入廠商離線推送能力的前提)
第四步:IM控制臺(tái)完成廠商推送參數(shù)配置
第五步:客戶端先成功登錄騰訊云IM,再調(diào)用廠商推送SDK接口初始化推送,獲取到廠商推送SDK返回的 deviceToken后,調(diào)用IM SDK “setOfflinePushConfig”接口,上報(bào) deviceToken,與當(dāng)前登錄的用戶綁定。
第六步:在IM控制臺(tái)測(cè)試推送,驗(yàn)證騰訊云IM是否正常接入廠商推送。
第七步:通過客戶端發(fā)送消息,驗(yàn)證對(duì)方接入推送成功后,能否收到推送。
最后:如以下均未出現(xiàn)問題,至此接入已完成。
騰訊云 IM 離線推送接入文檔鏈接:https://cloud.tencent.com/document/product/269/44516
排障步驟:
- 第一步:哪個(gè)廠商推送有問題,先去對(duì)應(yīng)廠商開放平臺(tái)確認(rèn)是否能收到推送
(“第一步”非常重要!非常重要!非常重要!重要的事情說三遍)
騰訊IM接入廠商推送的前提是需要廠商推送本身集成是正常,否則后續(xù)的步驟都沒有意義
- 第二步:檢查下 IM 控制臺(tái)填寫的對(duì)應(yīng)廠商推送配置是否正確
- 第三步:調(diào)用IM api進(jìn)行廠商推送token上報(bào)時(shí),是不是在收到“token”且登錄成功之后在調(diào)用的
- 第四步:以上步驟都確認(rèn)無誤后,再通過 IM 控制臺(tái)測(cè)試推送是否成功。(到這里基本完成)
第一步:哪個(gè)廠商推送有問題,先去對(duì)應(yīng)廠商開放平臺(tái)確認(rèn)是否能收到推送
這一步是接入騰訊云IM廠商離線推送前提,只有先在廠商開放平臺(tái)測(cè)試推送成功,才能進(jìn)行后面的對(duì)接。
目前騰訊云IM 國(guó)內(nèi)支持的手機(jī)廠商有:小米、華為、榮耀、OPPO、VIVO、魅族,境外支持 Google FCM。
第二步:檢查下 IM 控制臺(tái)填寫的對(duì)應(yīng)廠商推送配置是否正確(這里一定要填寫正確)
第一步確認(rèn)沒有問題后,接下來就是審查推送配置信息是否一致,點(diǎn)這里:配置鏈接
廠商開放平臺(tái) IM 控制臺(tái)
小米:
AppID 對(duì)應(yīng) AppID
AppSecret 對(duì)應(yīng) AppSecret
華為:
Client ID 對(duì)應(yīng) AppID
Client Secret 對(duì)應(yīng) AppSecret
榮耀:
APP ID 對(duì)應(yīng) AppID
Client ID 對(duì)應(yīng) ClientID
Client Secret 對(duì)應(yīng) ClientSecret
oppo:
AppKey 對(duì)應(yīng) AppKey
AppID 對(duì)應(yīng) AppID
MasterSecret 對(duì)應(yīng) MasterSecret
vivo:
AppKey 對(duì)應(yīng) AppKey
AppID 對(duì)應(yīng) AppID
AppSecret 對(duì)應(yīng) AppSecret
魅族:
App ID 對(duì)應(yīng) AppID
App Secret 對(duì)應(yīng) AppSecret
第三步:獲取到廠商推送token后 調(diào)用IM api進(jìn)行上報(bào)是否成功。
- 先通過廠商推送SDK拿到設(shè)備推送token,然后去廠商開放平臺(tái)測(cè)試指定 “設(shè)備ID” 推送是否成功
- 調(diào)用 騰訊云IM setOfflinePushConfig 接口上報(bào) token時(shí)是否成功
V2TIMOfflinePushConfig v2TIMOfflinePushConfig = null;
// 需要設(shè)置 businessID 為對(duì)應(yīng)廠商的證書 ID,上報(bào)注冊(cè)廠商推送服務(wù)獲取的 token。
v2TIMOfflinePushConfig = new V2TIMOfflinePushConfig(businessID, token);
V2TIMManager.getOfflinePushManager().setOfflinePushConfig(v2TIMOfflinePushConfig, new V2TIMCallback() {
@Override
public void onError(int code, String desc) {
DemoLog.d(TAG, "setOfflinePushToken err code = " + code);
}
@Override
public void onSuccess() {
DemoLog.d(TAG, "setOfflinePushToken success");
}
});
-
騰訊云IM控制臺(tái)配置證書后,對(duì)應(yīng)左上角生成的 businessID 圖