2017-10-04 10 views
1

このコードブロックが正常に機能するようになっていますが、Netbeans IDEで同じコードが問題なく動作しているため、私もPUTPOST Googleスクリプトを介して同じデータができるが、それからDELETEすることができません。ドキュメントhereにはUrlFetchAppが削除できると書かれていますが、実際には実装されていないか、動作していない可能性があります。私はURLFetchApp"method":"delete"を使用している人のオンラインの例は見つけていません。誰でも削除作業を行うことができましたか?そうでない場合、PUTPOSTが動作し、DELETEではない既存のコードで何かが見えますか?ありがとう!Google Script UrlFetchApp "method": "delete"エラー

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

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

答えて

0

このコードは役に立ちます。

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操作がリクエスト本文を持っていないため、コードが機能しない理由です。多くの(またはほとんどすべての)REST APIはそのように設計されています。

削除依頼中に依頼主体を送信することは禁じられていませんが、あなたはそれについてもっと読むことができますhere

1

modifySkillsForAgentsPayloadを変更し、encodeURIComponentでエンコードしてURLに追加することもできます。それは私のために働いた!

ここに私が使用して終了コードです:

// More information at http://apidocs.yotpo.com/reference#delete-a-purchase 
 
function deleteYotpoOrder(order_id) { 
 

 
    // Token retrieved from API 
 
    var token = 'randomStringofLettersAndNumbers9cg078as-0345'; 
 

 
    var orders = encodeURIComponent('[{"order_id": "' + order_id + '"}]'); 
 

 
    //Set the method to GET, POST, or DELETE 
 
    var params = { 
 
    "method": "DELETE", 
 
    'contentType': 'application/json' 
 
    // Can't use paylad with "DELETE" method 
 
    //'payload' : JSON.stringify(data), 
 
    }; 
 

 
    var deleteFromYotpoURL = "https://api.yotpo.com/apps/YOUR_APP_KEY/purchases?utoken=" + token + "&orders=" + orders; 
 

 
    try { 
 
    
 
    var result = UrlFetchApp.fetch(deleteFromYotpoURL, params); 
 
    var strFrmFbObj = result.getContentText(); 
 
    Logger.log("Result of Delete request: " + strFrmFbObj); 
 

 
    } catch (e) { 
 
    var errorSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Errors'); 
 
    var lastRow = errorSheet.getLastRow(); 
 
    var timestamp = new Date(); 
 
    var cell = errorSheet.getRange('A1'); 
 
    cell.offset(lastRow, 0).setValue(e.message); 
 
    cell.offset(lastRow, 1).setValue(e.fileName); 
 
    cell.offset(lastRow, 2).setValue(e.lineNumber); 
 
    cell.offset(lastRow, 3).setValue(timestamp); 
 
    } 
 
}

は、
関連する問題