none
azure android push RRS feed

  • 질문

  • IOS 는 토큰값으로 보내기, 전체 보내기가 잘되는데요

    ANDROID는 토큰값으로 단일 보내기가 안되네요. 전체 보내기는 됩니다.

    애저 포털에서 제공해주는 디버그에서 태그로 보내기 해도 안됩니다

    같은 에러를 뱉네요. 

    디버그 에서는 선택한 플랫폼에 대한 "APA91bEQ_TqLxt59XNnda-8x3vwET7DXi5cGKu3fcfG_xFiB05Tr2B0afjOkhN8orEIh1Doj7lzGGeedJstkGqZ2f4H8fV830vz9IR_fCSKpNcYT5_dMNw0oCPbq5QQAwQP4-WSUPXss" 태그가 있는 등록을 찾을 수 없습니다.

    라고 뜨고

    C# 소스에서 찍어본 로그는

    The remote server returned an error: (400) Bad Request. The supplied notification payload is invalid.TrackingId:63324437-cacc-4a8a-a89c-4cbab3689350_G3,TimeStamp:10/30/2015 1:56:58 AM

    라고 뜹니다.

    그래서 gcmcloudmessaging 으로 생성한 android 앱으로 푸쉬 테스트를 해봤는데

    브로드캐스팅 보내기, 지정태그 보내기 둘다 잘되네요.

    azure에서 만들어내는 device regid 값이 잘못된건가요?

    아니면 애저에서 제공해주는 디버그 기능과, c# 소스가 잘못된건가요.

    아래는 c# 소스 입니다

     GooglePushMessage gpm = new GooglePushMessage();

    if (item.DeviceToken == null || item.DeviceToken.Length < 0)
    {
        gpm.JsonPayload = " { \"data\" : { \"title\" : \"test\", \"message\" : \"'" + item.Text + "'\" } }";
        item.DeviceToken = "ALL";
        var result = await Services.Push.SendAsync(gpm);
        Services.Log.Info(result.State.ToString());


    }
    else
    {
        gpm.JsonPayload = " { \"registration_ids\" : [\"'" + item.DeviceToken + "'\"], \"data\" : { \"title\" : \"test\", \"message\" : \"'" + item.Text + "'\" } }";
        var result = await Services.Push.SendAsync(gpm);
        Services.Log.Info(result.State.ToString());
    }


    • 편집됨 kmsking 2015년 10월 30일 금요일 오전 2:25
    2015년 10월 30일 금요일 오전 2:23

답변

  • Notification Payload  400 문제는 데이터 형식이나 포맷이 문제가 있을 때 발생합니다.

    DeviceToken ="ALL" 에서는 이상이 없다면,

    일단 이와 같은 오류 재현은 어려울것 같습니다. 한번 시도해보겠습니다.

    아래를 먼저 확인해보십시오

    1. registration_ids : string array 를 registration_id : string 으로 테스트해보십시오.

    2. DeviceToken 문제일수 있으니 설정을 한번 더 확인해보셔야 할것 같습니다.


    Hong-ju


    2015년 10월 31일 토요일 오전 12:40
    중재자