Rpush通知无法提供

时间:2017-02-10 07:12:31

标签: ruby-on-rails push-notification google-cloud-messaging

我是Rails的新手。我正在尝试使用rpush gem发送推送通知。

我正在遵循以下步骤:

n = Rpush::Gcm::Notification.new
n.app = Rpush::Gcm::App.find_by_name("android_app")
n.registration_ids = ["#{d.device_token}"]
n.data = { title: "#{self.title}"}
n.save!

通知已保存但未送达,我收到以下错误说明:

"Unable to deliver notification 10, received error (Failed to deliver to all recipients. Errors: NotRegistered.)"

此处无法理解此问题。请帮帮我。

谢谢!

1 个答案:

答案 0 :(得分:0)

当你在日志中找到上面提到的消息时,就像所说的@abielita和rpush wiki文档一样,ide_id GCM用来发送通知,不再有效

具有( d.device_token )作为注册令牌的设备不再在GCM(Firebase)服务上注册。

此消息是出于特定原因:使您的代码适应这种情况。

也许更好地摧毁你的“ d ”记录!?

config / initializers / rpush.rb

中变得有用 Rpush.reflect

取消注释事件通知 on.gcm_invalid_registration_id 并在块内添加您的代码 e.g。

on.gcm_invalid_registration_id do |app, error, registration_id|
  Device.where(registration_id: registration_id).take.destroy
end

并将您的发送通知代码包含在条件检查

unless(d.nil?)
  n = Rpush::Gcm::Notification.new
  n.app = Rpush::Gcm::App.find_by_name("android_app")
  n.registration_ids = ["#{d.device_token}"]
  n.data = { title: "#{self.title}"}
  n.save!
end

我希望它有所帮助