Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;JSON“解析”错误:位置0处出现意外字符(d)。”;从GAS发送GCM请求时_Javascript_Json_Google Apps Script_Google Cloud Messaging_Firebase Cloud Messaging - Fatal编程技术网

Javascript &引用;JSON“解析”错误:位置0处出现意外字符(d)。”;从GAS发送GCM请求时

Javascript &引用;JSON“解析”错误:位置0处出现意外字符(d)。”;从GAS发送GCM请求时,javascript,json,google-apps-script,google-cloud-messaging,firebase-cloud-messaging,Javascript,Json,Google Apps Script,Google Cloud Messaging,Firebase Cloud Messaging,这似乎与许多其他问题非常相似,而且很明显,错误表明我的JSON负载有问题。但我不知道为什么 我正在运行GoogleApps脚本来测试向GoogleFirebase云消息发送消息 我的代码: function SendGCMessage() { var url = "https://gcm-http.googleapis.com/gcm/send"; var apiKey = "AbCdEfG"; var to = "ZyXwVuT:ToKeNtOkEnToKeNtOkEnToKeNt

这似乎与许多其他问题非常相似,而且很明显,错误表明我的JSON负载有问题。但我不知道为什么

我正在运行GoogleApps脚本来测试向GoogleFirebase云消息发送消息

我的代码:

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对象一样。params也是。UrlFetchApp采用Javascript对象,而不是JSON表示法中的字符串。然而,我确实尝试了“JSON.stringify(params)”并得到了一个错误。我做错了什么

注意:当我在调试器中暂停参数时,它看起来是这样的:

{“headers”:{“Content Type”:“application/json”,“Authorization”:“key=AbCdEfG”},“method”:“post”,“payload”:{“data”:{“message”:“This” 是消息“}”,发送至“:“ZyXwVuT:tokentoken”}”


多亏了你,我发现了这个问题

“payload”参数必须是此处指定的字符串:

调整脚本的这一部分可以:

var params = {
  headers: headers,
  method: "post",
  payload: JSON.stringify(payload)
};

你有没有试过像js对象文字一样构建有效负载?这不是我做的吗?这对我很有用!!就我而言,我使用的是Firebase云消息。我将JSON.stringify添加到我的负载中并开始工作。