华为PUSH kit老token问题

Problem with old tokens of Huawei PUSH kit

我正在使用华为推送工具包向客户发送推送消息。有一种机制可以经常刷新每个设备的推送令牌,因此现在使用的令牌可能与一天前使用的令牌不同。

问题是,如果我们尝试向仅在昨天有效的令牌发送推送,则响应为:

{ “代码”:“80000000” "msg": "成功", “requestId”:“161615569495608835000107” }

但是,很自然地,设备没有收到推送,因为它正在刷新。如果将它发送到最新的推送令牌,响应仍然相同并且设备确实收到消息。

为什么 API return 在第一个场景中没有不同的响应,例如错误代码 `80300007`(所有标记无效)?即使对于早于 1 天的令牌(测试可追溯到 25 天前的令牌),这也始终如一地被复制。

reference

测试的终点是:https://push-api.cloud.huawei.com/v2/.../messages:send

https://push-api.cloud.huawei.com/v1/.../messages:send

两者具有相同的行为。

你遇到的device token这种情况对于Push server来说是正常的,是信息流的问题,return值只是当前节点的一个表现。简单说明 1. Access Token 仅用于认证接口。如果认证成功后AT没有过期,则不报错。 2、服务端通过Push接口推送消息。如果success:80000000是return,说明华为Push服务器已经收到消息,但不代表可以推送到终端。