0

私はRailsを初めて使用しています。 rpush gemを使用してプッシュ通知を送信しようとしています。私は、次の手順を実行していますRpush通知が配信されない

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.)" 

ないここでの問題を理解することができます。私を助けてください。

ありがとうございます! @abielitaとrpush wikiドキュメント、GCMは、通知を送信するために使用されるidentification_idが言ったようにあなたは、あなたのログに記載されたメッセージを上記した手段を見つけるんが何より有効ある

+0

(https://github.com/rpush/rpush/ issue/96)、システムに不正なデバイス登録IDがある可能性があります。このメッセージは通知が通過しなかったことを示しているため、通過する通知に有効な別の登録IDを持っている必要があります。この可能性のある回避策については、このリンクを参照してください。また、[device_token](https://github.com/rpush/rpush/issues/27)が正しいことを確認してください。 – abielita

答えて

0

登録トークンとして(d.device_token)を持つデバイスは、もは​​やGCM(Firebase)サービスに登録されていません。

このメッセージは、特定の理由があります。コードをこの条件に適合させてください。

あなたの「d」レコードを破壊する方がいいかもしれません!

設定/初期化子/ rpush.rbに役立つRpush.reflectになり

コメントを解除し、イベント通知on.gcm_invalid_registration_idとブロック 例えば内部のコードを追加します

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 

私はそれが助けを願って、この[フォーラム]から基づい

関連する問題