Получить токен доступа для Microsoft Graph API, используя простой JavaScript - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь получить данные планировщика, используя Microsoft Graph API, используя вызов ajax. Но я получаю https://graph.microsoft.com/v1.0/me/planner/tasks 400 (неверный запрос):

function requestToken() {
        $.ajax({
            "async": true,
            "crossDomain": true,
            "url": "https://cors-anywhere.herokuapp.com/https://login.microsoftonline.com/common/oauth2/v2.0/token", // Pass your tenant name instead of sharepointtechie
            "method": "POST",
            "headers": {
                "content-type": "application/x-www-form-urlencoded"
            },
            "data": {
                "grant_type": "client_credentials",
                "client_id ": "--REDACTED--", //Provide your app id
                "client_secret": "--REDACTED--",

                                     //Provide your client secret genereated from your app
                "scope ": "https://graph.microsoft.com/.default"
            },
            success: function (response) {
                console.log(response);
                token = response.access_token;


                $.ajax({
                    url: 'https://graph.microsoft.com/v1.0/me/planner/tasks',
                    type: 'GET',
                    dataType: 'json',
                    beforeSend: function (xhr) {
                        xhr.setRequestHeader('Authorization', 'Bearer '+token+'');
                    },
                    data: {},
                    success: function (results) {                            
                        console.log(results);
                        debugger;
                    },
                    error: function (error) {
                        console.log("Error in getting data: " + error);
                    }
                });
            }

        })
    }

Ищу данные json из планировщика, но получаю ошибкукод https://graph.microsoft.com/v1.0/me/planner/tasks 400 (неверный запрос) при извлечении из графика API.

1 Ответ

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

Во-первых, есть пара основных проблем с кодом, которым вы поделились прямо сейчас:

  1. Не следует использовать Client Credentials Grant, т.е. clientId и client secret, чтобы сделатьвызовите Microsoft Graph API из вашего клиентского JavaScript-кода, он предназначен только для конфиденциальных клиентов, таких как демон или служба.

  2. В любом случае вы пытаетесь нажать на конечный компонент https://graph.microsoft.com/v1.0/me/planner/tasks, который включает ключевое слово me, действительное только для идентификатора пользователя.Поэтому вам следует попытаться получить токен, используя личность пользователя, который в данный момент вошел в систему, или запросить пользователя, если он не вошел в систему.

Вы можете использовать MicrosoftКлиентская библиотека Graph JavaScript для вызова Microsoft Graph.

Ссылка на клиентскую библиотеку также содержит подробные пошаговые инструкции с примером кода.

ПРИМЕЧАНИЕ :Пожалуйста, не помещайте свой клиентский секрет или любую другую конфиденциальную информацию как часть вашего вопроса в stackoverflow.Сейчас я отредактирую вопрос, но вы все равно должны удалить этот конкретный секрет для своего приложения и сгенерировать новые для любого будущего использования.

...