发送 APN 返回 BadDeviceToken,DeviceToken 格式应该是什么?

Kof*_*Kof 3 apn node.js ios

我的后端使用 Node.js 和 Express.js,使用该包处理 APN npm apn,该包使用 Apple 的新提供商身份验证令牌。iOS应用程序获得许可并将收到的32字节设备令牌发送到后端,编码为base64字符串。

但是,当尝试使用设备令牌(编码为 ascii、utf8 或 base64)发送推送通知时,APN 服务器返回 -

{"sent":[],"failed":[{"device":"....token....","status":"400","response":{"reason":"BadDeviceToken"}}]}
Run Code Online (Sandbox Code Playgroud)

发送到 APN 服务器时令牌的格式应该是什么?

Kof*_*Kof 5

经过几个小时的互联网搜索后,在APNs Provider API上扎营,下面提到APNs Notification API了 -

对于device-token参数,指定目标设备的设备令牌的十六进制字节。

这有效。设备令牌应编码为十六进制字节

// Node.js snippet
let deviceToken = Buffer.from(base64Token, 'base64').toString('hex');
Run Code Online (Sandbox Code Playgroud)

  • 我发现问题出在我设置的环境上,证书是生产的,而我尝试使用的令牌是暂存的。 (4认同)