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

Ios 发送APN返回BadDeviceToken,DeviceToken的格式应该是什么?,ios,node.js,apn,Ios,Node.js,Apn,我的后端使用Node.js和Express.js,使用npm APN包处理APN,该包使用苹果新的提供商认证令牌。iOS应用程序获得了权限,并将接收到的32字节设备令牌发送到后端,编码为base64字符串 但当尝试使用设备令牌(编码为ascii、utf8或base64)发送推送通知时,APN服务器返回- {"sent":[],"failed":[{"device":"....token....","status":"400","response":{"reason":"BadDeviceToke

我的后端使用Node.js和Express.js,使用
npm APN
包处理APN,该包使用苹果新的提供商认证令牌。iOS应用程序获得了权限,并将接收到的32字节设备令牌发送到后端,编码为base64字符串

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

{"sent":[],"failed":[{"device":"....token....","status":"400","response":{"reason":"BadDeviceToken"}}]}

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

在互联网上搜索数小时后,在
APN通知API下露营-

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

这起作用了。设备令牌应编码为十六进制字节

// Node.js snippet
let deviceToken = Buffer.from(base64Token, 'base64').toString('hex');

同样的事情@AjitejKaushik,你能猜出来吗?我看到了,但没有运气,我发现问题出在我设置的环境上,证书是生产的,而我尝试使用的令牌是暂存的。否决投票主要是针对不相关或非常糟糕的答案,如果它不适用于您,请继续搜索。如果您找到了答案,请将其张贴在下面,例如@AjitejKaushik应将最后一条评论粘贴为该问题的单独答案。这样,每个观众都会投票选出对他有用的答案。不需要减少其他答案,这不是一场竞赛。阅读原始问题——“发送到APN服务器时,令牌的格式应该是什么?”,问题是“格式是什么”,而不是“如何解决坏的设备响应”。上面的答案直接回答了这个问题——它是十六进制字节。唉,这不起作用。一个已经解决了它是如何起作用的人能做到吗?我仍然得到相同的错误@Kof