我的手机调用HMS Push Kit服务端API后收不到任何消息。 SDK版本为4.0.3.300

Posted

技术标签:

【中文标题】我的手机调用HMS Push Kit服务端API后收不到任何消息。 SDK版本为4.0.3.300【英文标题】:My phone cannot receive any message after calling the HMS Push Kit server API. The SDK version is 4.0.3.300 【发布时间】:2020-05-19 08:19:33 【问题描述】:

我使用华为Push Kit向华为设备推送消息,SDK版本为4.0.3.300。我可以正确获取token,所以我开始使用Postman调用Push Kit服务器API进行消息推送。返回的消息正文显示成功,但我的设备没有收到任何消息。以下是代码和我的操作。我该怎么做才能处理这个问题? 邮递员呼叫地址:

发布https://push-api.cloud.huawei.com/v1/[myappid]/messages:send

已发送消息正文:


    "validate_only": true,
    "message": 
        "data": "my data",
        "android": 
            "fast_app_target": 2
        ,
        "token": [
            "my token"
        ]
    

回复:


    "code": "80000000",
    "msg": "Success",
    "requestId": "158929224618234594000607"

响应表示成功,但我的设备没有收到任何数据消息。

我已经继承了 HmsMessageService 并在清单文件中进行了配置。

public class MyPushService extends HmsMessageService 
private static final String TAG = "hmspush";

@Override
public void onMessageReceived(RemoteMessage message) 
Log.i(TAG, "onMessageReceived is called");
if (message == null) 
Log.e(TAG, "Received message entity is null!");
return;

Log.i(TAG, "getCollapseKey: " + message.getCollapseKey()
+ "\n getData: " + message.getData()
+ "\n getFrom: " + message.getFrom()
+ "\n getTo: " + message.getTo()
+ "\n getMessageId: " + message.getMessageId()
+ "\n getSendTime: " + message.getSentTime()
+ "\n getMessageType: " + message.getMessageType()
+ "\n getTtl: " + message.getTtl());


<service
android:name=".MyPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>

【问题讨论】:

【参考方案1】:

问题是由不正确的消息正文引起的。在邮件正文中,有一个名为validate_only 的字段。根据华为开发者联盟的描述,该字段判断消息是否为测试消息。测试消息只需要格式验证,不会推送到用户设备。 值 true 表示测试消息;值 false 表示正常消息。 由于validate_only 字段的值在给定场景中为真,因此该消息是测试消息,因此设备无法接收。解决问题,将validate_only的值改为false


    "validate_only": false,
    "message": 
        "data": "my data",
        "android": 
            "fast_app_target": 2
        ,
        "token": [
            "my token"
        ]
    

【讨论】:

以上是关于我的手机调用HMS Push Kit服务端API后收不到任何消息。 SDK版本为4.0.3.300的主要内容,如果未能解决你的问题,请参考以下文章

在 HMS Push Kit 和 React Native 中收到通知时,如何获取应用自动处理的通知?

是否有将 Braze 与 push_kit HMS 集成的最佳实践 - Flutter

转载超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸

如何使用Postman调试HMS Core推送接口?

超简单集成HMS ML Kit实现最大脸微笑抓拍

华为 Push Kit 错误:907135701:范围列表为空