HMS Core推送服務支持開發者使用HTTPS協議接入Push服務端,可以從服務器發送下行訊息給終端設備,這篇文章匯總了服務端下發訊息最常見的6個錯誤碼,并提供了原因分析和解決方法,有遇到類似問題的開發者們快了解一下吧,
錯誤碼一:80200001," Oauth認證錯誤"
原因分析:
- 下發訊息未添加Authorization請求引數或值為空,

- 應用A的APPID申請的Access Token,卻用于給應用B推送訊息,也會出現此錯誤碼,

申請Access Token


下發訊息
解決方法:
-
排查請求HTTP頭中是否有入參Authorization請求引數,Authorization獲取方式可參考檔案、下行訊息API可參考檔案,
-
獲取Access Token使用的APPID和下發訊息使用的APPID需要保持一致,
錯誤碼二:80300007,"Token無效錯誤"
原因分析:
- token不合法,token中多或少了字符,例如下圖中多了個空格,

- 給應用A下發訊息,token卻是應用B的,這種情況也是原因之一,

解決方法:
-
檢查token引數是否正確;
-
確保下發訊息使用的token,是獲取于目標應用的
錯誤碼三:80300010,"訊息體中的Token數量不符合默認值"
原因分析:
-
開發者將“message”欄位拼寫錯誤,示例圖中message欄位結尾多了 'r';
-
token位置不正確,欄位結構問題;
-
下發的token數量超過了限制,或token為空,

解決方法:
-
確保message、token欄位寫入正確;
-
message欄位包含token,與 "android"同級;

- token的數量應在1-1000個,確認token引數的數量,參考欄位結構及說明請參考檔案,
錯誤碼四:80200003,"Oauth Token過期"
原因分析:
-
Authorization請求引數值中的Access Token已過期
-
請求引數值不正確,多或少了其他字符,

解決方法:
-
Access Token有效期為一個小時,若超過限定時間,則需要重新獲取并使用最新Access Token下發訊息,重新獲取Access Token方法可參考檔案
-
確保使用的Access Token與獲取的一致,復制Access Token時出現轉義字符,需要將“/”還原為“/”,
錯誤碼五:80100016,"訊息里面含有敏感資訊"
原因分析:
出現這種報錯說明推送訊息內容中含有敏感資訊

解決方法:
-
由于不提供敏感詞庫,需要開發者自行檢測內容;
-
開發者可以接入推必安,下發訊息通過推必安審核后,華為不會二次審核,接入推必安的流程可參考檔案,
注意事項:
- 推必安審核通過后,需要將推必安回傳通過的結果添加到華為Review欄位的result物件中,這樣下發訊息時華為才能知道訊息審核已通過,華為也不會進行二次審核,
"review": [
{
"reviewer": "tuibian",[]()
"type": 0,
"result": {
//以下為推必安回傳結果
"code": 200,
"data": {
"auditEngine": "t****ine",
"auditId": "0f74b*******0b3f490d",
"labels": []
},
"msg": "Pass",
"sign": "MEQCIBHc********IqLjw=="
}
}
]
}
- 并不是將整個訊息體都放到推必安“content”欄位中,需要審核的是“message”里面的內容,同時會對訊息體內容按ASCII碼升序排序后轉為字串格式進行審核,
{
"validate_only":false,
"message":{
//以下部分需要審核
"notification":{
"title":"message title",
"body":"message body"
},
"android":{
"collapse_key":0,
"notification":{
"click_action":{
"type":2,
"url":"https://example.com"
}
}
},
"token":[
"pushtoken1"
]
}
}
- 由于審核程序繁瑣,建議減少下發欄位的使用,這樣操作更簡單也會避免下發訊息時出現80100018錯誤碼,該錯誤碼指發給三方機構審核的訊息體與下發時的訊息體不一致,
錯誤碼六:sub_error":57303,"error_description":"appid is overload blocked","error":1302
原因分析:
過多請求access_token被流控,流控閾值為1000個/5分鐘,

解決方法:
調整請求邏輯,access_token有效期為一個小時,無需頻繁申請,流控5分鐘后重置,可以再次申請,更多access_token相關限制可參考檔案,
了解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導檔案
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間了解 HMS Core 最新技術資訊~
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/499808.html
標籤:Android
