Запись в GoogleSheet через API с Java

Я пытаюсь записать значение в ячейку с помощью Google Sheet API с Java. Для чтения я использовал руководство от Java Quickstart что отлично сработало для меня.

для записи в Google Sheet я использую:

service.spreadsheets().values().update(spreadsheetId, "Sheet1!A4:H", response).execute();

эта функция выводит следующую ошибку во время выполнения:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Request had insufficient authentication scopes.",
    "reason" : "forbidden"
  } ],
  "message" : "Request had insufficient authentication scopes.",
  "status" : "PERMISSION_DENIED"
}

В качестве области аутентификации я использую

private static final List<String> SCOPES = Arrays.asList(SheetsScopes.SPREADSHEETS);

4 ответов


по-видимому, было несколько вопросов вместе:

  1. удалить учетные данные, которые были сохранены в /Users / XXX/.полномочия.
  2. измените области на SheetsScopes.ЭЛЕКТРОННАЯ ТАБЛИЦА.
  3. Google Sheet Share и редактировать параметры на самом листе.

теперь все работает! Спасибо ребята за помощь


у меня была та же проблема. Я решил проблему, которая была в области. Я просто изменился

SheetsScopes.SPREADSHEETS.READONLY

до

 SheetsScopes.SPREADSHEETS

и это работает очень хорошо.


API Java должен использоваться в интерактивном режиме, если вы запускаете это на сервере, который не может всплывать веб-браузер (который позволит вам одобрить диалог OAuth), то поток аутентификации не получает правильные учетные данные и не будет работать.

во время выполнения этого вы видите, что браузер всплывает, чтобы утвердить диалог OAuth? Если нет, вы, скорее всего, работаете в сеансе без головы и вам понадобятся другие средства для получения учетных данных пользователя.


попробуйте заменить " Sheet1!A4: H" с A4: H