Ошибка проверки токена доступа - MS Graph API Version 2 - PullRequest
0 голосов
/ 22 февраля 2019

Я много гуглил по этому вопросу, но ничего мне не помогло.Я также видел много похожих постов, но бесполезно.

Я использую MS Graph API V2 для доступа к электронной почте, календарю и контактам пользователей.

Авторизация URL:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=ABC&redirect_uri=redirectURL&response_type=code&scope=Mail.Read(ScopeURL)

URL-адрес запроса токена:

https://login.microsoftonline.com/common/oauth2/v2.0/token

Headers:

Content-Type:application/x-www-url-form-urlencoded

Body: 

client_id:ABC
redirect_uri:RedirectURL
grant_type:authorization_code
client_secret:KEY
code: pasted from browser URL

Я успешно получаю код в URL браузера после входа в систему и использования того же кода также для получения токена доступа.

Профиль пользователя / Почтовые сообщения / Запрос контактов:

Пример: Я пытаюсь прочитать профиль пользователя, а также почтовые сообщения пользователя.

Соответствующие запросы:

Profile: https://graph.microsoft.com/v1.0/me/

Mail Messages: https://graph.microsoft.com/v1.0/me/messages

Header: Authorization:Bearer (AccessToken pasted from token request)

Но я получаю ошибку ниже, какой бы запрос не использовался выше.

{
    "error": {
        "code": "InvalidAuthenticationToken",
        "message": "Access token validation failure.",
        "innerError": {
            "request-id": "1e232525-6772-483e-87e3-679d5fcb8fb5",
            "date": "2019-02-22T11:53:50"
        }
    }
}

Я установил разрешения на чтение и запись почты, доступ к данным календарей, контактам (полный доступ)

Я создал приложение в https://apps.dev.microsoft.com

1 Ответ

0 голосов
/ 25 февраля 2019

Формат области должен быть https://graph.microsoft.com/Mail.Read Mail.ReadWrite User.Read.Я попробовал следующее, это сработало.

enter image description here

Чтобы получить меня / контакты, вам необходимо предоставить разрешения Contacts.Read и Contacts.ReadWrtie.

enter image description here

И когда вам требуется access_token, URL авторизации должен выглядеть следующим образом: https://login.microsoftonline.com/common/oauth2/v2.0/authorize? (необходимо использовать common для замены tenant name).

enter image description here

...