首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google Scripts中调用API以填充到Google Sheets中

在Google Scripts中调用API以填充到Google Sheets中
EN

Stack Overflow用户
提问于 2021-07-01 17:54:35
回答 1查看 78关注 0票数 1

我正在尝试弄清楚如何将请求发送到URL,以便它填充在Google Sheets中。此时,日志抛出错误"Order not found“。这是我第一次为该请求编写脚本。到目前为止,我有:

代码语言:javascript
复制
function myFunction() {
  var data = {
            "date":"2021-07-01",
            "reference":"REFERENCE",
            "products":[
              {
               "id":"31565598851174",
               "quantity":15
             },
             {
               "id":"31424655589478",
               "quantity":10
             }
            ]
          }
  var options = {
    'method' : 'post',
   'contentType': 'application/json',
    // Convert the JavaScript object to a JSON string.
    'payload' : JSON.stringify(data)
  };
  var url = "https://stockists.rerootedorganic.co.uk/api/order/?key=example"
  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response);
}

我认为问题可能出在query的语法上。如果你能帮我找出我做错了什么,那就太好了,谢谢。

错误:

代码语言:javascript
复制
Execution log
11:45:18 AM Notice  Execution started
11:45:19 AM Info    
{"error":{"message":"Order not found"}}
11:45:19 AM Info    null
11:45:20 AM Info    
{"error":{"message":"Order not found"}}
11:45:20 AM Info    {error={message=Order not found}}
11:45:19 AM Notice  Execution completed
EN

回答 1

Stack Overflow用户

发布于 2021-07-01 19:01:00

改编此代码

代码语言:javascript
复制
function myFunction() {
  var url = 'https://stockists.rerootedorganic.co.uk/api/order/?key=example&date='
  var when = '2021-07-01' // string format
  var data = JSON.parse(UrlFetchApp.fetch(url+when).getContentText())
  Logger.log(data.order.reference)
  for (var i=0;i<data.order.products.length;i++){
    Logger.log(data.order.products[i].id + ' qty: ' + data.order.products[i].quantity)
  }
}

填充图纸的步骤

代码语言:javascript
复制
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('** Menu **')
    .addItem('request','myFunction')
    .addToUi();
}
function myFunction() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var d = Utilities.formatDate(sh.getRange('B3').getValue(), "GMT+2", "yyyy-MM-dd")
  var url = sh.getRange('B1').getValue() + '?key=' + sh.getRange('B2').getValue() + '&date=' + d
  var data = JSON.parse(UrlFetchApp.fetch(url).getContentText())
  for (var i=0;i<data.order.products.length;i++){
    sh.appendRow([data.order.reference,data.order.products[i].id,data.order.products[i].quantity])
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68208068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档