Refre sh BigQuery данных в листах с помощью вызова API - PullRequest
0 голосов
/ 16 апреля 2020

Учитывая Google Sheet, в котором есть данные, поступающие из BigQuery через соединитель данных Sheets для BigQuery (как описано здесь ), можно ли принудительно обновить sh этого Данные BigQuery через API Sheets? Это можно сделать через пользовательский интерфейс Sheets (имеет кнопку refre sh), но я хочу сделать это через какой-то другой сервис, вызывающий API.

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете использовать Apps Script для взаимодействия с коннектором данных в вашей электронной таблице.

Соображения

Из Sheet API вы не можете манипулировать источником данных. Вместо этого вы можете использовать Apps Script. Относительно легко настроить скрипт, который обновляет ваши данные BigQuery.

Подход

Если вы хотите выполнить эту операцию с внешним API, вам придется использовать Apps Script в качестве прокси для достижения вашей цели. Вы можете развернуть свой Сценарий приложений как Исполняемый файл API и запускать его функции из внешней службы.

Сценарий приложений

/** @OnlyCurrentDoc */

function refresh() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Data Sheet 1'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
};

Ваша внешняя служба

// [...] Oauth and other set ups...

public static void main(String[] args) throws IOException {
    // ID of the script to call. Acquire this from the Apps Script editor,
    // under Publish > Deploy as API executable.
    String scriptId = "ENTER_YOUR_SCRIPT_ID_HERE";
    Script service = getScriptService();

    // Create an execution request object.
    ExecutionRequest request = new ExecutionRequest()
            .setFunction("refresh");

    try {
        // Make the API request.
        Operation op =
                service.scripts().run(scriptId, request).execute();

// [...] Error handling...

Ссылки:

Соединитель данных Big Query

API скриптов приложений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...