Google Sheets Api Авторизация с сервисным аккаунтом - PullRequest
1 голос
/ 26 октября 2019

Я использую googleapis библиотека v44.0.0. Когда я пытаюсь войти в систему, я получаю сообщение об ошибке.

API Google Sheets ранее не использовался в проекте 33120758 или отключен. Включите его, посетив https://console.developers.google.com/apis/api/sheets.googleapis.com/overview?project=33120758, затем повторите попытку. Если вы недавно включили этот API, подождите несколько минут, пока действие распространится на наши системы, и повторите попытку.

Я использую google-auth-library версии ^ 0.10.0 в том же проекте. И этой ошибки не было.

const { google } = require("googleapis");
// ...
const JwtClient = new google.auth.JWT(
  client_email, 
  null, 
  private_key, 
  ["https://www.googleapis.com/auth/spreadsheets"]
);
await JwtClient.authorize();
google.options({ auth: JwtClient });

// ...
const client = google.sheets({ version: "v4" });
const data = await client.spreadsheets.get({ spreadsheetId: myId});

1 Ответ

1 голос
/ 26 октября 2019
  • Вы хотите использовать Sheets API с учетной записью службы.
  • Вы хотите добиться этого, используя googleapis с Node.js.

Если мое понимание верно,как насчет этой модификации?

Модифицированный скрипт:

С:
await JwtClient.authorize();
google.options({ auth: JwtClient });

// ...
const client = google.sheets({ version: "v4" });
const data = await client.spreadsheets.get({ spreadsheetId: myId});
Кому:
const client = google.sheets({ version: "v4", "auth": JwtClient });
const data = await client.spreadsheets.get({ spreadsheetId: myId});
console.log(data.data)

Примечание:

  • Если вы хотите получить данные изЭлектронная таблица на вашем собственном Google Диске, пожалуйста, поделитесь электронной таблицей с электронной почтой учетной записи службы. Таким образом, электронную таблицу можно получить из учетной записи службы. Пожалуйста, будьте осторожны.

В моем окружении я могу подтвердить, что измененный скрипт работает. Но если это не решило вашу проблему, я прошу прощения.

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