在RoR应用程序

时间:2016-10-06 14:23:47

标签: ios ruby-on-rails ssl heroku apple-push-notifications

我知道在这种情况下有很多问题,但我已经尝试了所有解决方案,但我仍然陷入困境。我正在使用杂货商gem来向APN服务发送推送通知。我被困在证书问题上。

这是代码

pusher = Grocer.pusher(
  certificate: "#{Rails.root}/public/certificate1.pem",      # required
  passphrase:  "",                       # optional
  gateway:     "gateway.push.apple.com", # optional; See note below.
  port:        2195,                     # optional
  retries:     3                         # optional
) 


notification = Grocer::Notification.new(
  device_token: token,
  alert: "#{uname} liked your post",
  sound: 'default',
  badge:  0
)

pusher.push(notification)

我在生产环境中,我在Heroku上托管应用程序。 Heroku日志告诉我这个

OpenSSL::PKey::RSAError (Neither PUB key nor PRIV key: nested asn1 error):
app/controllers/api/v1/feeds_controller.rb:49:in `likeit'

第49行是推送通知的行。

我确定我使用的证书是正确的,因为我已经使用它测试了推送通知。此外,在生成pem文件时,我已导出证书以及私钥。

参考:grocer gem

欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

我不得不改变这两件事:

1)在apple developer accounts上的推送通知选项卡下获取生产SSL证书

2)当我还处于开发模式时,将gateway.push.apple.com更改为gateway.sandbox.push.apple.com。