javascript - 我正在尝试执行 GET/POST 请求并定义选项变量两次。第二个定义覆盖第一个

标签 javascript google-apps-script httprequest urlfetch

我正在尝试执行 GET/POST 请求并定义选项变量两次。第二个定义覆盖第一个定义,而我的授权 token 仅位于第一个定义中。

因此,当我发出请求时,我没有传递授权 token ,这会导致“需要登录”错误。

如何解决这个问题?

function DBMdownload() {
var url = "https://www.googleapis.com/doubleclickbidmanager/v1/query/000000000";
  var options = {
    'method': 'get',
    'headers': {'Authorization': ('Bearer ' + ScriptApp.getOAuthToken())}
     };
  var options = {
    'method' : 'post',
    'contentType' : 'application/json',
     };
var response = UrlFetchApp.fetch(url, options); 
var responseData = JSON.parse(response.getContentText());
}

更新

function DBMdownload() {
var url = "https://www.googleapis.com/doubleclickbidmanager/v1/query/608174710";
  var options = {
    'method': 'get',
    'headers': {'Authorization': ('Bearer ' + ScriptApp.getOAuthToken())}
     };
var response = UrlFetchApp.fetch(url, options);

function DBMdownload2() {
  var options2 = {
    'method' : 'post',
    'contentType' : 'application/json',
     };
var response2 = UrlFetchApp.fetch(url, options);
var responseData = JSON.parse(response2.getContentText());
}
}

最佳答案

布莱恩,

您当前的方法是覆盖选项对象,这就是您的调用不发送 token 的原因。

您可以拆分这些函数,让 get 和 post 函数将 URL 和其他属性作为参数发送,或者删除 options 对象的第一个声明并添加 headers 到最后一个。

关于javascript - 我正在尝试执行 GET/POST 请求并定义选项变量两次。第二个定义覆盖第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503891/

相关文章:

javascript - Laravel Echo - 无法加入状态 channel

javascript - Angular 7通过调用两次服务订阅方法进行通信

javascript - d3 selectAll.remove() 与 d3.select.remove() 相比是滞后的

javascript - 用户输入的 If 语句放置(带有 code.gs、page.html、page-css.html、page-js.html 的谷歌应用程序脚本)

Google Sheets 脚本中的日期(持续时间)

azure - 如何使用 REST API 的输出作为逻辑应用中另一个 REST API 的输入

javascript - 使用 JavaScript 的 reduce 时,如何跳过迭代?

javascript - Google App 脚本中的日期失败

Tomcat 7 : RequestDumperFilter not logging HTTP Request/Response body

java - Java中HTTP请求中添加HEADER