0

AIR ANDROID アプリの actionscript から GCM への HTTP リクエストを作成しようとしています。私は何を間違っていますか?こちらのリクエスト形式に従っています。

エラー 400 が返ってきます

var url:String = "https://android.googleapis.com/gcm/send";

var request:URLRequest = new URLRequest(url);

var rhArray:Array = new Array(new URLRequestHeader("Content-Type", "application/json"),new URLRequestHeader("Authorization", "key=MYAPIKEY"));
            request.requestHeaders = rhArray;

var msgData:String = JSON.stringify({"message":"holy crap message worked","title":"the message title here"});
var postData:String = JSON.stringify({"registration_ids":["THELONGREGISTRATIONIDOFTHEDEVICEIWANTTOMESSAGE"],"data":msgData});

request.data = postData;
request.method = URLRequestMethod.POST;

var urlLoader:URLLoader = new URLLoader();
urlLoader = new URLLoader();

urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler, false, 0, true);
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler, false, 0, true);

urlLoader.load(request);
4

2 に答える 2

0

401 HTTP ステータス コードを受け取った場合、API キーは無効です。したがって、有効な API キーを持っていると仮定すると、最初に修正する必要があるのは変更することです

"Authorization", "MYAPIKEY"

"Authorization", "key=MYAPIKEY"

400 HTTP ステータス コードを受け取った場合、JSON は無効です。次のようになっていることを確認してください。

{ "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"]
}

いくつかの引用符が欠落している可能性があります (キーに引用符がないようです)。

于 2013-03-23T02:58:38.320 に答える