javascript - 如何使用 getByDataFilter Sheets API v4 获取特定行数据

标签 javascript google-apps-script google-sheets-api

我需要获取此表的特定数据行:
谷歌表数据库
,为此我使用以下过滤器参数:

var filter = {
  "dataFilters": [
    {
      "developerMetadataLookup": {
        "metadataValue": "julian@domain3.com"
      }
    }
  ]
};

但目前的结果如下:
response: {
  "spreadsheetId": "1chGysP"
}

我需要的结果如下所示:
response: {
  "range": "'Hoja 1'!A4:D4",
  "majorDimension": "ROWS",
  "values": [
    [
      "3",
      "domain4",
      "julian@domain3.com",
      "Active"
    ]
  ]
}

我发现了一个与我类似的问题,它似乎有效,但我认为我不会像检查配额、报告仪表板等那样直接利用 API。
How can I use the Google Sheets (v4) API getByDataFilter to return a specific row of data?

我的完整代码如下:
//function for bot that runs asynchronously from Google Apps Script 

function consultData(){
var url = 'https://sheets.googleapis.com/v4/spreadsheets/1chGysP/values:batchGetByDataFilter?key=KAIzaSy'

  var service = getOAuthService();
  service.reset()

  var filter = {
  "dataFilters": [
    {
      "developerMetadataLookup": {
        "metadataValue": "julian@domain3.com"
      }
    }
  ]
};

  var params = {
      headers: {
      Authorization: 'Bearer ' + service.getAccessToken()
      },
      method: 'get',
      contentType: 'application/json',
      payload: JSON.stringify(filter),
      muteHttpExceptions: true
    };
  var response = UrlFetchApp.fetch(url, params).getContentText();
    Logger.log('response: ' + response);
  return response;
}

API引用:
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/getByDataFilter

最佳答案

就我而言,增加信息的最实用和可扩展的解决方案是不将工作表用作数据库,首先因为它对记录有限制https://support.google.com/drive/answer/37603?hl=es

并限制 getDataFilter 所需的元数据,以按值进行条件

https://developers.google.com/sheets/api/guides/metadata

我快速有效的解决方案是将我的信息存储库放在 Firebase 中,使用这个库可以非常轻松地进行连接、查询、覆盖、创建:
https://github.com/grahamearley/FirestoreGoogleAppsScript

关于javascript - 如何使用 getByDataFilter Sheets API v4 获取特定行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62382093/

相关文章:

javascript - 有没有办法从 Google 电子表格中获取 JSON 对象而不是字符串形式的字段?

dart - 是否可以从(服务器-VM-运行)Dart 代码读取 Google 电子表格?

javascript - Bootstrap 模式不显示登录窗口

javascript - Backbone.js - 无法获取数据以进行收集

google-apps-script - 在 Google Apps 脚本中设置单元格边框宽度

google-apps-script - UrlFetchApp 在脚本编辑器中工作,而不在文档中工作

google-apps-script - 如何使用脚本将时间转换为 Google Sheets 中的十进制 float ?

javascript - 高效获取元素可见区域坐标

javascript - jQuery - 为每个对象创建新的 div?

javascript - 删除 Google 表格中的重复行,忽略单元格的顺序