簡體   English   中英

如何將 javascript 中的 ajax 轉換為 Google 腳本中的 UrlFetchApp?

[英]How to convert ajax in javascript to UrlFetchApp in Google script?

我想從谷歌腳本中的 szimek 廣告套件 api 獲取數據。 這是從 javascript 中的 szimek api 獲取數據的示例。

var settings = {
    "url": "https://adapi.uat.sizmek.com/sas/login/login",
    "method": "POST",
    "timeout": 0,
    "headers": {
        "Content-Type": "application/json",
        "api-key": "api key token",
        "": ""
    },
    "data": "{username:\"Username\", password: \"Password\"}",
};

$.ajax(settings).done(function(response) {
    console.log(response);
});

西梅克 api 幫助

所以我在谷歌腳本中轉換了代碼。

const API_KEY = '[api token]';
var url = 'https://adapi.sizmek.com/sas/login/login/'

// Make a POST request with a JSON payload.
var data = {
  'username': '[username]',
  'password': '[password]',
};

var options = {
  'method' : 'post',
  'contentType': 'application/json',
  "headers":{
            Authorization: API_KEY
  },
  "payload": JSON.stringify(data),
  'muteHttpExceptions': true
};

var response = UrlFetchApp.fetch(url, options);

但是我得到了未經授權的錯誤。 問題是什么?

在此處輸入圖像描述

雖然不幸的是,我無法測試您的請求,但如果您的頂級腳本是正確的,我認為Authorization: API_KEY可能是"api-key": "api key token", 那么,下面的修改呢?

從:

"headers":{
          Authorization: API_KEY
},

到:

"headers":{ "api-key": "api key token" },

筆記:

  • 我擔心當請求header中包含"": ""時,可能會出錯。

  • 當我再次看到您的頂級腳本時, "{username:\"Username\", password: \"Password\"}"的每個鍵都沒有被"括起來。我認為如果這是正確的,我認為"{username:\"Username\", password: \"Password\"}"可能無法解析為JSON object。但是,我不確定服務器端的規范。所以,如果上面的修改是不能直接解決您的問題,請測試以下修改。

    •  "headers":{ Authorization: API_KEY }, "payload": JSON.stringify(data),
    •  "headers":{ "api-key": "api key token" }, "payload": "{username:\"Username\", password: \"Password\"}",

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM