应该使用哪个 npm 模块在节点 js 中向 Apple(iphone) 发送推送通知,我们为啥以及如何实现这一点?

Posted

技术标签:

【中文标题】应该使用哪个 npm 模块在节点 js 中向 Apple(iphone) 发送推送通知,我们为啥以及如何实现这一点?【英文标题】:Which npm module should be used to send push notification to Apple(iphone) in node js and why and how can we achieve this?应该使用哪个 npm 模块在节点 js 中向 Apple(iphone) 发送推送通知,我们为什么以及如何实现这一点? 【发布时间】:2017-06-01 11:51:40 【问题描述】:

我想使用 node.js 服务器端语言向 iphone 发送推送通知 我发现 npm 有两个模块可以做到这一点

    https://www.npmjs.com/package/apns

    var apns = require("apns"), options, connection, notification;
    
    options = 
     keyFile : "conf/key.pem",
     certFile : "conf/cert.pem",
     debug : true
    ;
    

    connection = new apns.Connection(options);

我只有一个 pem 文件,但他们询问两个 pem 文件 key.pem 和 cert.pem

    https://www.npmjs.com/package/apn

      var options = 
        token: 
         key: "path/to/key.p8",
         keyId: "T0K3NK3Y1D",
         teamId: "T34M1D"
      ,
      production: false
     ;
    
    var apnProvider = new apn.Provider(options);
    

在这里,他们询问密钥,keyId。团队 ID。但是我怎样才能得到这个呢?

我应该使用哪个 npm 模块来发送 Apple 推送通知?

我有我的应用程序的 pem 文件和包 ID。它们是否足以向 Apple 用户发送推送通知?

还无法确定哪个 npm 模块最适合发送相同的内容? 任何关于此的建议总是受欢迎的。

感谢您的帮助

【问题讨论】:

如何生成key.pem和cert.pem文件?你有什么解决办法吗?我也面临同样的问题 @ishika 是的,我找到了解决方案。我使用了 apns 模块和 ios 团队生成的 pem 文件。实际上我用于 pem 文件的路径是错误的,这就是为什么无法在 ios 中发送通知 【参考方案1】:

你在那个问题中有太多的子问题指向同一个问题,即使用哪个 npm 模块从节点服务器发送 iOS 通知。

我从这里使用了 APN 模块,它可以无缝运行 - https://www.npmjs.com/package/apn

关于 APN 工作原理的 Apple 指南 - https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/APNSOverview.html#//apple_ref/doc/uid/TP40008194-CH8-SW1

有关如何创建密钥和证书文件的详细信息- https://quickblox.com/developers/How_to_create_APNS_certificates

希望有帮助!

【讨论】:

什么是 p8 键,因为我有 p12 键 p8 是苹果现在创建的新身份验证系统密钥。阅读此***.com/questions/39672297/… 如何生成key.pem和cert.pem文件?

以上是关于应该使用哪个 npm 模块在节点 js 中向 Apple(iphone) 发送推送通知,我们为啥以及如何实现这一点?的主要内容,如果未能解决你的问题,请参考以下文章

在节点 js“应该设置秘密”和反应“npm ERR!代码 ELIFECYCLE”中出现错误

Node.js:如何创建付费节点模块?

节点版本管理器 (NVM) npm 将模块安装到公共文件夹

在节点 js 中向移动设备发送通知

用于在 npm 中部署的节点模块交叉构建目标

NPM 模块(节点/浏览器)中的 JSONP 跨域