Использование Gmail API из приложения Android - PullRequest
1 голос
/ 23 апреля 2020

Мне нужно загрузить все отправленные пользователем электронные письма из приложения Android. В случае учетных записей Gmail я хочу использовать Gmail API. Документация по Gmail API, OAuth 2.0 и c вызывает у меня ОГРОМНУЮ головную боль, и я все это теряю. Все, что я пытаюсь сделать на этом этапе, - это создать работающий объект службы Gmail, к которому я могу обратиться.

В настоящее время я пытаюсь сделать следующее:

  1. Добавление знака с интеграцией Google, чтобы получить GoogleSignInAccount способ, которым это руководство сообщает мне (также запрашивает токен Id).
  2. Создание нового GoogleCredential и установив токен, который я получил выше (полученный с помощью account.getIdToken), с помощью:

            GoogleCredential credential = new GoogleCredential.Builder().setTransport(new NetHttpTransport())
                .setJsonFactory(JacksonFactory.getDefaultInstance())
                .build().setAccessToken(account.getIdToken()).createScoped(Collections.singletonList(GmailScopes.GMAIL_READONLY));
    
  3. Создание объекта 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...