Проблемы интеграции Office 365 с API графа с использованием Java SDK - PullRequest
0 голосов
/ 22 мая 2019

Я следил за https://github.com/microsoftgraph/msgraph-sdk-java проектом по получению всех писем с использованием Microsoft Graph API. Этот проект отлично работает на основе моей измененной конфигурации.

Однако, это следует за OAuth аутентификацией, и мне нужно настроить URL-адрес перенаправления, и во время выполнения проекта я получил код аутентификации в качестве параметра запроса по данному URL-адресу.

Я застрял в двух точках:

  1. Как обойти концепцию redirect_url, так как мое приложение будет работать в фоновом режиме. Итак, есть ли способ, я могу автоматически захватить этот authentication code?

  2. При торговле кодом аутентификации я получаю access_token с 3600 expiry, используя метод ниже.

    OAuth2AccessToken mAccessToken = mOAuthService.getAccessToken(authCodeFromURL);
    

В вышеуказанном объекте, получающем ниже JSON, который не имеет токена обновления.

{
    "token_type": "Bearer",
    "scope": "Files.ReadWrite openid User.Read Mail.Send Mail.ReadWrite",
    "expires_in": 3600,
    "ext_expires_in": 3600,
    "access_token": "encryptedCode",
    "id_token": "encryptedCode"
}

Я попытался получить новый токен доступа с методом ниже из SDK, используя id_token, но он не работает, выдает мне недействительным.

OAuth2AccessToken mAccessToken = mOAuthService.refreshAccessToken(idToken);

Неверный JSON:

{
    "error": "invalid_grant",
    "error_description": "AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID: 03690b71-4056\r\nCorrelation ID: b70a7b7b-963b-4cd6\r\nTimestamp: 2019-05-22 08:24:33Z",
    "error_codes": [9002313],
    "timestamp": "2019-05-22 08:24:33Z",
    "trace_id": "03690b71-4056-49b9",
    "correlation_id": "b70a7b7b-963b-4cd6"
}

Что такое id_token?

Как я могу обновить это access_token? Или есть другой способ / способ сделать это?

Пожалуйста, обратите внимание, я ищу решение с помощью Java SDK.

...