我是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
运行此脚本,这样就完成了。