13

Google Cloud Messaging について質問があります...

3 つの登録 ID を求めて GCM を Google に送信すると、登録 ID が間違っていたため、登録 ID のうち 2 つが正常に送信され、1 つが送信されなかったという応答が Google から返されました。

しかし、どの登録IDが送信されていないかはわかりません...

ここで質問があります。Google GCM 応答を解析して、送信されていない登録 ID を取得するにはどうすればよいですか? Google には API か何かがあり、「multicat_id」を指定して、どの登録 ID に問題があったかを教えてくれますか?

どんな助けでも大歓迎です、私はとても混乱しています:)

4

3 に答える 3

15

それは順序に基づいています:

これを送信するとします:

{ "collapse_key": "score_update",
  "time_to_live": 108,
  "delay_while_idle": true,
  "data": {
    "score": "4x8",
    "time": "15:16.2342"
  },
  "registration_ids":["4", "8", "15", "16", "23", "42"]
}

Google から次の応答を取得します。

{ "multicast_id": 216,
  "success": 3,
  "failure": 3,
  "canonical_ids": 1,
  "results": [
    { "message_id": "1:0408" },
    { "error": "Unavailable" },
    { "error": "InvalidRegistration" },
    { "message_id": "1:1516" },
    { "message_id": "1:2342", "registration_id": "32" },
    { "error": "NotRegistered"}
  ]
}

これは、送信した 3 番目の登録 ID (15) が無効であり、6 番目 (42) が登録されていないことを意味します。どちらも DB から削除する必要があります。

于 2013-06-04T15:22:10.470 に答える