안드로이드 개발 질문/답변
(글 수 45,052)
아래 요청했는데, 먼가 질문의도와 다른 답변이 달려서 내용을 수정해서 질문드립니다.
현상, send호출시, Error=NotRegistered 응답 받음
확인을 위해 콘솔에서 curl로 직접 호출해봄.
호출방법,
curl "https://android.apis.google.com/c2dm/send" -d "registration_id=어플에서 구글에 요청해서 받은값" -d "collapse_key=1" -d "data.msg=yoyo" -H "Authorization: GoogleLogin auth=서버쪽에서 받은 인증가" |
c2dm의 흐름상, (1) 핸드폰에서 registration_id 얻기, (2) 서버측에서 auth값 구하기, (3) auth값으로 registration_id한테 msg 보내기
(1), (2) 모두 정상 작동합니다. (그러니 3번까지 왔겠지만 ㅎㅎ)
문제는 (3)번에서 200, NotRegistered 응답이 옵니다.
참고로 (3)에서
auth값을 잘못넣으면 unauthorized 에러나고,
registration_id를 잘못넣으면 invalid registration id 오류가 정상적으로 나옵니다.
제대로된 registration_id를 넣을때, not registered라고 나옴
질문 1) 핸드폰에서 받은 registration_id가 잘못될수 있는지.
- 즉, 오류상황에서도 registration_id를 받거나, 잘못된 reg값을 받을 수가 있는지
((3)에서 잘못된 reg값(임의값)을 넣으면 invalid오류가 나는거보니 잘 받은거 같긴하지만...혹시 모르니)
질문 2) NotRegistered 는 어떤경우에 나오는지
(구글문서에 나온 설명은 저도 읽었음. 그 경우 말고. 좀더 구체적인 예나 다른 경우,
예를들면 무슨무슨 권한이 업으면 오류가 난다던지..등)




자답,
(1)에서 sender가 (2)의 email 즉, c2dm신청시 알려준 email주소라는거.
인터넷에 떠도는 설명 사이트에 sender에 emailOfreceive 이런식으로 써있어서 착각했내여. 괜히 개고생을 ㅜ.ㅜ