web-dev-qa-db-ja.com

GCMエラー= MissingRegistrationがJSON経由でメッセージを送信しています

Fiddlerを介してPush GCMをテストしています

ヘッダー:

User-Agent: Fiddler
Authorization: key=AIzaSyAkXfcuLLCZ-5n18wwO6XeJ13g-z9ja
Host: Android.googleapis.com
Content-Length: 286

体:

{"registration_ids":["APA91bHyn8YHcH_vSuOo7_A0PMgF5SU1K0FebOFGKXYTqpN5x4eD0tVBvzQLn749TVcczN5gSjB1wqf5AzYfxFI_qskA1Nzipf-9MfdEom1PI1vkFqKIg9B8vZvPLOLozE7jaRzELuyDzpFRbO3Xh5lT-KDA"],"collapse_key":"8b990f5a-78fc-4bad-b242-ffc740a750fb","data":{"message":"message to device"}}

エラーが発生しました

Error=MissingRegistration

私の問題はどこにありますか?すべてのIDが正しいです。

31
takayoshi

ヘッダーのコンテンツタイプをJSONに指定するのを忘れた可能性があります。

Content-Type: application/json

Content-Typeを省略すると、形式はプレーンテキストであると見なされます。

また、プレーンテキストの場合、MissingRegistrationエラーを説明するregistration_idではなく、registration_idsというパラメーターで登録IDが渡されます。

74
Eran

新しいクラウドメッセージでは、サーバーからdwonstreamメッセージを送信する場合、「to」を使用してターゲット登録IDを宣言解除する必要があります。

以下のように:

https://gcm-http.googleapis.com/gcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."
}
3
Zephyr

Firebaseの場合、 https://firebase.google.com/docs/cloud-messaging/http-server-ref#error-codes から情報を取得できます。

要求に登録トークンが含まれていることを確認してください(プレーンテキストメッセージのregistration_id、またはJSONのtoまたはregistration_idsフィールド)。

2
Hamedz

スイフト5

In my case receiver token was missing and after put the fcm receiver token its work fine for me
0
Shakeel Ahmed