Вот моя проблема.
Я разрабатываю веб-приложение с помощью движка приложений Google в JAVA.
Я искал в Интернете и видел много разных ответов на мою проблему., предлагая различные решения, но ни одно из них не помогло мне, я все еще получаю:
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Insufficient Permission",
"reason" : "insufficientPermissions"
} ],
"message" : "Insufficient Permission"
}
Я пытаюсь отправить письмо из своего аккаунта на другие адреса электронной почты (от меня для меня в качестве теста).Я успешно реализовал API листов, но вспомнил, что сначала мне нужно было пройти через экран согласия, но теперь я действительно не знаю, как снова вызвать этот экран для постоянной проверки областей. Позвольте мне объяснить.
IУ меня есть два файла учетных данных.
- для получения информации о пользователях для подтверждения входа в систему через Google, здесь я использую URL-адрес подключения openID, и там у меня появляется экран согласия.
- используется API Sheetsи Gmail API как «я», чтобы сначала получать данные из моих электронных таблиц и отправлять почту с моего адреса электронной почты.Как было сказано ранее, я проверил API Sheets, но не могу заставить Gmail работать с теми же учетными данными.
Я протестировал различные области, но безуспешно добавил еще один файл учетных данных.Пожалуйста, скажите мне, если вам нужен какой-то код.
РЕДАКТИРОВАТЬ
Просто удалил мои учетные данные API листов и удалил мое приложение для привязки к моей учетной записи, и теперь я не могу получитьэкран согласия для всплывающего окна.и я получаю:
com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
"error" : "invalid_grant",
"error_description" : "Token has been expired or revoked."
}
Я использую этот код для получения учетных данных
private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException {
// Load client secrets.
InputStreamReader in = new InputStreamReader(new FileInputStream(new File("WEB-INF/credentials.json")));
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, in);
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
.setAccessType("offline")
.build();
LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
}
, но в документации Google говорится:
Информация об авторизации хранится нафайловая система, поэтому последующие выполнения не будут запрашивать авторизацию.
Где я могу удалить сохраненную файловую систему?
Любая помощь очень ценится