我是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
显示消息可能已被发送!
我假设发送的消息也创建了一个具有上述注册表的android应用程序,但我也没有收到任何通知
非常感谢有关此方案的帮助
谢谢
答案 0 :(得分:0)
我使用了宝石'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
运行此脚本,您就完成了。