gpt4 book ai didi

ios - 使用 node-apn 发送 Push 总是返回 Invalid token (8)

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:27 25 4
gpt4 key购买 nike

我正在尝试让我的 node.js 应用成功地向我的设备发送推送通知。一开始我确定我的推送证书/ key 有误,所以我用 Ruby 写了同样的东西以确保它能完美运行。

当我尝试使用 nomad-cli(命令行工具)或仅在 Ruby 中使用 Nomad 时,它工作正常,它需要一个包含 key 和证书的 PEM 文件

看起来像这样

apn push "21329bc4164a56226a982f3daea4e3ace5e6c1788e4dc3a75248eca330b280a300"-c ./apns.pem -m "CLI Hello"

并返回“1 个推送通知已成功发送”,并立即显示在我的设备上。

在我的 node.js 代码中,我使用的是 node-apn,它需要单独的证书和 key PEM 文件。所以我尝试用各种方法分离,但我总是得到同样的错误:

无效的 token (8)

这是没有意义的,因为在我编写的 Ruby 测试中,相同的标记适用于相同的 PEM 文件......

我真的把我不存在的秃头头发拉到这里......现在坚持了两天。

我尝试用以下方法分离:

  • 尝试将 p12 转换为 pem 并将 PEM 用于两个证书/ key 字段
  • 转换为 PEM ,然后手动打开 PEM 并将其分离为 key.pem 和 cert.pem(使用 -----BEGIN CERTIFICATE------- ---开始RSA私钥-----
  • 尝试使用以下命令单独拆分:
    openssl pkcs12 -in apns.p12 -nocerts -out key.key//提取 key
    openssl rsa -in key.key -outform PEM -out key.pem//解密 key
    openssl pkcs12 -in apns.p12 -clcerts -nokeys -out cert.pem//提取证书

使用所有这些方法,我的 node.js 代码失败,错误代码为 8。我的 node.js 代码如下所示:

let apn         = require('apn')
let conn = new apn.connection({cert: "_private/certs/dev/cert.pem", key: "_private/certs/dev/key.pem", production: false})

let note = new apn.notification()
note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now.
note.badge = 3;
note.sound = "ping.aiff";
note.alert = "\uD83D\uDCE7 \u2709 You have a new message";
note.payload = {'messageFrom': 'Caroline'};

conn.pushNotification(note, new apn.Device("21329bc4164a56226a982f3daea4e3ace5e6c1788e4dc3a75248eca330b280a300"))

conn.on('error', error => {
console.log("ERROR" + error)
})

conn.on('transmitted', (notification, device) => {
console.log("TRANS")
console.log(notification)
console.log(device)
})

conn.on('completed', () => {
console.log("COMPLETED")
})

conn.on('transmissionError', (errorCode, notification, device) => {
console.log("TRANS ERR")
console.log(notification)
console.log(device)
console.log(errorCode)
})

我真的在拔头发。希望有人能帮忙:)谢谢。

最佳答案

conn.pushNotification(note, new apn.Device("<21329bc4 164a5622 6a982f3d aea4e3ac e5e6c178 8e4dc3a7 5248eca3 30b280a300>"))

token 的格式是这样的

关于ios - 使用 node-apn 发送 Push 总是返回 Invalid token (8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com