我是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.)"
此处无法理解此问题。请帮帮我。
谢谢!
答案 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
我希望它有所帮助