これは他の多くの質問と非常によく似ており、JSON ペイロードに何か問題があることをエラーが示していることは明らかです。しかし、私はその理由について途方に暮れています。
Google Apps Script を実行して、Google Firebase Cloud Messaging へのメッセージの送信をテストしています。
私のコード:
function SendGCMessage() {
var url = "https://gcm-http.googleapis.com/gcm/send";
var apiKey = "AbCdEfG";
var to = "ZyXwVuT:ToKeNtOkEnToKeNtOkEnToKeNtOkEn"
var payload = {
"data": {
"message" : "This is the message"
},
"to":to
};
var sendCount = 1;
var headers = {
"Content-Type": "application/json",
"Authorization": "key=" + apiKey
};
var params = {
headers: headers,
method: "post",
payload: payload
};
var response = UrlFetchApp.fetch(url, params);
return {message: "send completed: " + response.getContentText()};
}
これをデバッグ モードで実行すると、オブジェクト ペイロードは通常の Javascript オブジェクトのように正常に見えます。パラメータも。UrlFetchApp は、JSON 表記の String ではなく、Javascript オブジェクトを取ります。ただし、「JSON.stringify(params)」を試してみたところ、エラーが発生しました。私は何を間違えましたか?
注: デバッガーで一時停止すると、params は次のようになります。
{"headers":{"Content-Type":"application/json","Authorization":"key=AbCdEfG"},"method":"post","payload":{"data":{"message" :"これがメッセージです"},"to":"ZyXwVuT:ToKeNtOkEnToKeNtOkEnToKentOkEn"}}