API Gmail для настройки учетной записи службы и чтения/отправки почты от имени пользователяJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 API Gmail для настройки учетной записи службы и чтения/отправки почты от имени пользователя

Сообщение Anonymous »

У меня есть защищенный SSL веб-сервер Jetty, задача которого — читать/отправлять электронные письма от имени пользователя. Для чтения предпочтительнее использовать pub/sub, а не pull. Выполнили следующие действия с сайта Developers.google.com
  • Создали проект в консоли, включили API Gmail, создали учетную запись службы с доменом приложений Google. Широкое делегирование загрузило закрытый ключ json и p12.
  • Создал идентификатор клиента OAuth, выбрав веб-приложение, присвоив ему имя и добавив URI авторизованного перенаправления в одну из конечных точек API веб-сервера.
    Предоставить право публикации темы с помощью API консоли.
  • Создала тему в pub-sub и подписалась с помощью конечной точки HTTPs. Сообщение проверено вручную с помощью консольного API для публикации и успешно получено.
Теперь все, что осталось сделать, — это использовать клиентскую библиотеку Java для использования учетных данных сервисной учетной записи. и поговорите с API Gmail от имени пользователя (собрали токены аутентификации и обновления от пользователей для этой темы)

Попытавшиеся шаги.
  • Используя загруженный закрытый ключ (стр. 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"
}
Примечание. Часть кодирования проверяется на локальном сервере, а не на том, который имеет SSL. Я полагаю, что это не должно быть проблемой, поскольку у меня есть все необходимые файлы ключей для доступа к API.

Пожалуйста, дайте мне знать, если я что-то упускаю.

Подробнее здесь: https://stackoverflow.com/questions/352 ... lf-of-user
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»