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