使用rails创建第三方应用服务器来发送GCM推送通知



我是rails的新手,我想知道我是否能够通过添加gem gcm_on_rails将我现有的rails服务器更改为第三方应用服务器。我在这个假设中安装了gem,并使用控制台

中的代码向gcm服务器推送了一条消息。
   device = Gcm::Device.create(:registration_id =>"APA91bGJSaiKkCm_h9w8prWsL_inTMPs8pmCme8dcLpW0_2AKbny4bTXpx823cCfJLDJmO3_ihiww1ZVK0iqToAlPWKFWcBSraGRw6KNB1PsLYJJWvRZJ3bMP0")
   notification = Gcm::Notification.new
   notification.device = device
   configatron.gcm_on_rails.delivery_format = 'json'
   notification.collapse_key = "updates_available"
   notification.delay_while_idle = true
   notification.data = {:registration_ids => ["APA91bGJSaiKkCm_h9w8prWsL_inTMPs8pmCme8dcLpW0_2AKbny4bTXpx823cCfJLDJmO3_ihiww1ZVK0iqToAlPWKFWcBSraGRw6KNB1PsLYJJWvRZJ3bMP0"], :data => {:message_text => "Get on cloud nine"}}
   notification.save
   Gcm::Notification.send_notifications

,我得到的响应是

response = {:code=>200, :message=>nil}

但是在上述宝石本身的文档中,它说即使显示了message=>nil,也可能已经发送了消息!

我假设消息被发送也创建了一个具有上述注册id的android应用程序,但我也没有收到任何通知

如果您能帮助解决这个问题,我将不胜感激

谢谢

我使用gem 'gcm'。我发现通过GCM发送数据到我的android应用程序更好。它还具有接近实时的响应。只需设置一个Rails服务器,并在主目录中添加一个脚本,代码如下:

require 'gcm'
api_key = 'your-gcm-api-key'
gcm = GCM.new(api_key)
registration_ids= ["client_reg_id1","client_reg_id2"] # an array of reg ids of app clients
options = {"label"=>"data"}
response = gcm.send_notification(registration_ids, options)

启动rails服务器,然后在命令行中使用ruby -rubygems script.rb运行此脚本,这样就完成了。

最新更新