Запись в 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 ответов
по-видимому, было несколько вопросов вместе:
- удалить учетные данные, которые были сохранены в /Users / XXX/.полномочия.
- измените области на SheetsScopes.ЭЛЕКТРОННАЯ ТАБЛИЦА.
- Google Sheet Share и редактировать параметры на самом листе.
теперь все работает! Спасибо ребята за помощь
у меня была та же проблема. Я решил проблему, которая была в области. Я просто изменился
SheetsScopes.SPREADSHEETS.READONLY
до
SheetsScopes.SPREADSHEETS
и это работает очень хорошо.
API Java должен использоваться в интерактивном режиме, если вы запускаете это на сервере, который не может всплывать веб-браузер (который позволит вам одобрить диалог OAuth), то поток аутентификации не получает правильные учетные данные и не будет работать.
во время выполнения этого вы видите, что браузер всплывает, чтобы утвердить диалог OAuth? Если нет, вы, скорее всего, работаете в сеансе без головы и вам понадобятся другие средства для получения учетных данных пользователя.