Pushmeup Gem - 无法在Active Admin模型中发送推送通知

时间:2014-11-24 07:40:21

标签: ruby-on-rails ruby push-notification activeadmin

我使用Active Admin在Rails中创建CRM / CMS。

我已将Pushmeup Gem用于APNS(Apple推送通知服务)功能,但我似乎无法使其正常运行。

这就是我的所作所为。

  1. 分叉Pushmeup Gem以创建我自己的存储库。我已经编辑了配置以匹配我的凭据。

    gem' pushmeup',:git => ' GIT中://github.com/thisisnotme/pushmeup.git'

  2. 我已经关注instructions了。

  3. 这是我的app / admin / token.rb文件。

      collection_action :apns, method: :get do
        device_token = '7eb2c5fa7f3b0be45cb3613b1d05470c5b76b90929a8ce49d2e511d7b1245d8a'
        APNS.send_notification(device_token, 'Hello iPhone!' )
        APNS.send_notification(device_token, :alert => 'Hello iPhone!', :badge => 1, :sound => 'default')
      end
    

    这出现在我的屏幕上:

    NoMethodError in Admin::DeviceTokensController#apns
    undefined method `close' for nil:NilClass
    
    Extracted source (around line #19):
    17
    18
    19
    20
    21
    22
    
      collection_action :apns, method: :get do
        device_token = '7eb2c5fa7f3b0be45cb3613b1d05470c5b76b90929a8ce49d2e511d7b1245d8a'
        APNS.send_notification(device_token, 'Hello iPhone!' )
        APNS.send_notification(device_token, :alert => 'Hello iPhone!', :badge => 1, :sound => 'default')
      end
    

    似乎缺少APNS课程。我有点迷路了。抱歉Rails Newbie。

2 个答案:

答案 0 :(得分:0)

我发现主机和端口的定义如下:

module APNS
   @host = 'gateway.sandbox.push.apple.com'
   @port = 2195
   class << self
      attr_accessor :host, :pem, :port, :pass
   end
end

所以你可以重新定义APNS变量,因为它显示在README

APNS.host = 'gateway.push.apple.com'
APNS.port = 2195 
APNS.pem  = '/path/to/pem/file'
APNS.pass = ''

答案 1 :(得分:0)

也许这有点晚了,但我有同样的错误。抛出它是因为我没有将证书和钥匙链中的密钥提取到单个PEM文件中。