Google apps script 谷歌脚本UrlFetchApp“;方法";:&引用;删除“;错误

Google apps script 谷歌脚本UrlFetchApp“;方法";:&引用;删除“;错误,google-apps-script,Google Apps Script,我很难让这段代码正常工作,我相信这是谷歌的末日,因为同样的代码在Netbeans IDE中完美地工作。我还可以通过Google脚本放置和发布相同的数据,但不能从中删除。我担心的是,尽管文档中声明UrlFetchApp能够删除,但它可能实际上并未实现或工作。我还没有在网上找到一个使用“方法”的人的例子:“使用URLFetchApp删除”。是否有人能够使删除生效?如果没有,您是否看到我现有的代码中有任何东西可以使放置和发布生效,而不是删除?谢谢 var delete_options = {

我很难让这段代码正常工作,我相信这是谷歌的末日,因为同样的代码在Netbeans IDE中完美地工作。我还可以通过Google脚本
放置
发布
相同的数据,但不能
从中删除
。我担心的是,尽管文档中声明
UrlFetchApp
能够删除,但它可能实际上并未实现或工作。我还没有在网上找到一个使用
“方法”的人的例子:“使用
URLFetchApp
删除”
。是否有人能够使删除生效?如果没有,您是否看到我现有的代码中有任何东西可以使
放置
发布
生效,而不是
删除
?谢谢

var delete_options = {
     'method' : 'DELETE',
     'contentType': 'application/json',
     'payload' : JSON.stringify(modifySkillsForAgentsPayload),
     'headers' : {
       'Authorization' : 'bearer ' + accessToken,
       'Accept' : 'application/json'

     }
  };
  UrlFetchApp.fetch(url,delete_options);

此代码将适用于您

function test()
{
  var url = "https://jsonplaceholder.typicode.com/posts/1";

  var delete_options = {
    'method' : 'DELETE',
    'contentType': 'application/json',
    //      'payload' : JSON.stringify({"test":"test"}),
    'headers' : {
      'Authorization' : 'bearer ' + ScriptApp.getOAuthToken(),
      'Accept' : 'application/json'        
    }
  };

  var blob = UrlFetchApp.fetch(url, delete_options);
  Logger.log(blob);
}
因为HTTP DELETE操作不应该有请求主体,所以代码不能工作的原因。许多(或几乎所有)RESTAPI都是这样设计的


虽然删除请求中不禁止发送请求正文。您可以阅读更多信息。

您还可以尝试修改ModifySkillsFragentsPayload,使用encodeURIComponent对其进行编码,并将其附加到URL。这对我有用

以下是我最终使用的代码:

//有关详细信息,请访问http://apidocs.yotpo.com/reference#delete-a-购买
函数deleteYotpoOrder(订单id){
//从API检索的令牌
变量标记='RandomStringOfLittersandNumber9CG078AS-0345';
var orders=encodeURIComponent('[{“order_id”:“'+order_id+'”}]”);
//将方法设置为获取、发布或删除
变量参数={
“方法”:“删除”,
“contentType”:“application/json”
//无法使用带“删除”方法的paylad
//“有效负载”:JSON.stringify(数据),
};
var deleteFromYotpoURL=”https://api.yotpo.com/apps/YOUR_APP_KEY/purchases?utoken=“+token+”&orders=“+orders;
试一试{
var result=UrlFetchApp.fetch(deleteFromYotpoURL,params);
var strFrmFbObj=result.getContentText();
Logger.log(“删除请求的结果:+strFrmFbObj”);
}捕获(e){
var errorSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Errors');
var lastRow=errorSheet.getLastRow();
var timestamp=新日期();
var cell=errorSheet.getRange('A1');
cell.offset(lastRow,0).setValue(e.message);
cell.offset(lastRow,1).setValue(e.fileName);
单元偏移量(lastRow,2).setValue(如行号);
cell.offset(lastRow,3).setValue(timestamp);
}
}