programing

GCM 오류=JSON을 통해 메시지를 보내는 등록

newsource 2023. 3. 11. 09:01

GCM 오류=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가 올바릅니다.

헤더에 콘텐츠유형을 JSON으로 지정하는 것을 잊어버렸을 가능성이 있습니다.

Content-Type: application/json

Content-Type이 생략된 경우 형식은 일반 텍스트로 간주됩니다.

일반 텍스트의 경우 등록 ID는 다음과 같은 파라미터로 전달됩니다.registration_id대신registration_ids그 때문에,MissingRegistration에러입니다.

새로운 클라우드 메시지에서는 서버에서 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..."
}

Firebase의 경우 https://firebase.google.com/docs/cloud-messaging/http-server-ref#error-codes에서 정보를 얻을 수 있습니다.

요청에 등록 토큰이 포함되어 있는지 확인합니다(플레인텍스트 메시지의 registration_id 또는 JSON의 to 또는 registration_ids 필드).

스위프트 5

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

언급URL : https://stackoverflow.com/questions/22486192/gcm-error-missingregistration-sending-messages-via-json