Мне нужно загрузить все отправленные пользователем электронные письма из приложения Android. В случае учетных записей Gmail я хочу использовать Gmail API. Документация по Gmail API, OAuth 2.0 и c вызывает у меня ОГРОМНУЮ головную боль, и я все это теряю. Все, что я пытаюсь сделать на этом этапе, - это создать работающий объект службы Gmail, к которому я могу обратиться.
В настоящее время я пытаюсь сделать следующее:
- Добавление знака с интеграцией Google, чтобы получить
GoogleSignInAccount
способ, которым это руководство сообщает мне (также запрашивает токен Id). Создание нового GoogleCredential
и установив токен, который я получил выше (полученный с помощью account.getIdToken
), с помощью:
GoogleCredential credential = new GoogleCredential.Builder().setTransport(new NetHttpTransport())
.setJsonFactory(JacksonFactory.getDefaultInstance())
.build().setAccessToken(account.getIdToken()).createScoped(Collections.singletonList(GmailScopes.GMAIL_READONLY));
Создание объекта Gmail
с:
Gmail gmail = new Gmail.Builder(new NetHttpTransport(), new JacksonFactory(), credential).build();
Но всякий раз, когда я пытаюсь использовать этот объект Gmail, я получаю следующий ответ:
W/System.err: com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
{
"code" : 401,
"errors" : [ {
"domain" : "global",
"location" : "Authorization",
"locationType" : "header",
"message" : "Invalid Credentials",
"reason" : "authError"
} ],
W/System.err: "message" : "Invalid Credentials"
Я поступаю совершенно неправильно? Есть ли другой способ создания объекта Gmail или его аутентификации? Я не думаю, что Java Краткое руководство по началу работы мне очень помогло бы здесь, так как я не вижу, как метод аутентификации перевел бы в среду Android.