API Call Graph из SharePoint - PullRequest
       25

API Call Graph из SharePoint

0 голосов
/ 26 ноября 2018

Мне нужно вызвать Graph API из spfx webpart.

Ранее мы использовали следующий метод:

import { MSGraphClient } from '@microsoft/sp-client-preview';

Но позже мы узнали, что MSGraphClient устарел в sp-client-preview.

Я проверил следующий метод, который также упоминается в документации Microsoft.

import { MSGraphClient } from '@microsoft/sp-http';

Но выдает ошибку следующим образом:

Модуль'"d: / O365 / upload-onedrive / node_modules / @ microsoft / sp-http / dist / index-internal" "не имеет экспортированного члена' MSGraphClient '

Используемая сейчас версия SPFx1.6

Есть ли способ вызвать Graph API из spfx сейчас?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

На самом деле нет никаких причин создавать какие-либо приложения на стороне Azure, все это выполняется автоматически и выполняется SharePoint.См. Следующую документацию для деталей.Мы немного изменили структуру API между предварительным просмотром и GA, но основы остались прежними с использованием MSGraphClient и без каких-либо оснований для какой-либо ручной обработки токена доступа.

https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-msgraph

0 голосов
/ 27 ноября 2018

Конечно, мы можем использовать Graph в SPFx.

Graph + adal + SPFx шаги:

  1. Создать приложение в Портал Azure .Щелкните манифест, затем измените значение « oauth2AllowImplicitFlow » на true
  2. Перейдите на Настройки-> Необходимые разрешения-> ДОБАВИТЬ-> Выбрать API-> График Microsoft , выберите разрешение, а затем Предоставьте разрешения .

  3. Создайте проект HelloWorld SPFx: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part

  4. Add и IAdalConfig.Файлы исправлений ts и WebPartAuthenticationContext.js

    Советы. Если в папке node_modules / @ types отсутствует модуль adal, лучше установить модуль вручную с помощью команды: npm install @ types / adal @1.0.29

  5. Добавьте следующий код в render ()

      // Make an AJAX request to the Graph API and print the response as JSON.
      var getToken;
    
      var getCurrentUser = function (access_token) {
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'https://graph.microsoft.com/v1.0/me', true);
        xhr.setRequestHeader('Authorization', 'Bearer ' + access_token);
    
        xhr.onreadystatechange = function () {
    
          if (xhr.readyState === 4 && xhr.status === 200) {
    
            // Do something with the response
    
            getToken=JSON.stringify(JSON.parse(xhr.responseText), null, '  ');
            console.log('get Graph APi information=='+getToken);
          } else {
            // TODO: Do something with the error (or non-200 responses)
          //  console.log(' error');
          }
        };
        xhr.send();
    
...