- Создали проект в консоли, включили API Gmail, создали учетную запись службы с доменом приложений Google. Широкое делегирование загрузило закрытый ключ json и p12.
- Создал идентификатор клиента OAuth, выбрав веб-приложение, присвоив ему имя и добавив URI авторизованного перенаправления в одну из конечных точек API веб-сервера.
Предоставить право публикации темы с помощью API консоли. - Создала тему в pub-sub и подписалась с помощью конечной точки HTTPs. Сообщение проверено вручную с помощью консольного API для публикации и успешно получено.
Попытавшиеся шаги.
- Используя загруженный закрытый ключ (стр. 12), мы попытались создать учетные данные и для примера получить метки почты
Код: Выделить всё
HttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); String serviceAccount = "[email protected]"; Credential credential = GoogleCredential.Builder().setTransport(HTTP_TRANSPORT) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(serviceAccount) .setServiceAccountPrivateKeyFromP12File(new File("/path-to-key-file.p12")) .setServiceAccountScopes(Collections.singleton(GmailScopes.GMAIL_LABELS)) .build(); Gmail service = new Gmail.Builder(HTTP_TRANSPORT, JSON_FACTORY, cred).setApplicationName("web-application-name-created-via-console").build(); String user = "me"; //Tried direct email id also service.users().labels().list(user).execute();
Код: Выделить всё
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Bad Request",
"reason" : "failedPrecondition"
} ],
"message" : "Bad Request"
}
Пожалуйста, дайте мне знать, если я что-то упускаю.
Подробнее здесь: https://stackoverflow.com/questions/352 ... lf-of-user