2016-06-21 7 views
0

私は現在、複数のアプリケーションを一度に処理し、通知を処理し、将来のアプリケーションのプログラミング時間を短縮するプッシュ通知APIに取り組んでいます。 Android搭載端末に登録して通知を受け取ることができるので、すでに一部機能しています。GCMの失敗の詳細を確認する方法はありますか?

最終的に、私たちのアプリケーションの1つは登録されたユーザーにブロードキャスト通知を送信するつもりです。しかし、一部のトークンが期限切れになる可能性があり、GCMの失敗につながります。私はすでにテストしました。有効なトークンを持つデバイスが通知を受け取ると、HTTPコールを1回だけGCMに送信することは本当にうまくいっているようです。

GCMドキュメントの検索で見つからなかったことは、失敗した場合の詳細を取得する方法でした。私は2人のユーザー、無効1で有効なトークンを持つ一方及び他方に通知を送信する場合、例えば、私はこの結果を得た:私たちは、メッセージのいずれかを送信するために失敗したことがわかります

{ 
"multicast_id":7625209716676388798, 
"success":1, 
"failure":1, 
"canonical_ids":0, 
"results":[ 
    {"error":"InvalidRegistration"}, 
    {"message_id":"0:1466511379030431%c4718df8f9fd7ecd"} 
    ] 
} 

を、しかし、私が探しているのは、より詳細な情報を得る方法であり、理想的には失敗につながるトークンなので、データベースから削除することができます。

これを実現する方法はありますか?おそらくmessage_idを使用していますか?それとも、私のデータベースに無効なトークンが格納されているのを見つけるための解決策はありますか?私はドキュメンテーションで何かを見逃したかもしれない、それへのリンクさえも役に立つだろう。

答えて

1

このdocumentationから、GCMサーバーはプッシュ通知の送信に使用したトークンに関する情報をサーバーに応答します。

また、このリンクによれば、アプリケーションサーバーが登録ハンドシェイクの一部を完了できない場合、クライアントアプリケーションは登録トークンをサーバーに送信し直すか、登録トークンを削除する必要があります。古いトークンをGCMサーバーから消去するには、ÌnstanceID.deleteToken()を使用します。

は、これらのリンクをチェックしてください:

+1

をうわー、私はそれを逃したか疑問。あなたが提供したリンクは、GCMに通知を送信するときに応答がJSONオブジェクトであることを認識しました。 json_decodeを使用して、各メッセージの結果を取得し、条件を使用して、トークンが有効でない場合は適切なアクションをトリガーすることができました。どうもありがとう ! – YumeYume

関連する問題