Pierwsze kroki z MS Flow i Graph API – rejestracja aplikacji oraz pobranie access token we Flow

#Office 365, #SharePoint, #PowerApps, #Flow, #MS Graph, #Webcon BPS, #Running & #Technology

Pierwsze kroki z MS Flow i Graph API – rejestracja aplikacji oraz pobranie access token we Flow

Microsoft Graph API staje się coraz potężniejszym narzędziem, dzięki któremu coraz łatwiej integrować różne aplikacje wchodzące w skład O365. Dzisiaj krótki opis pierwszych kroków, dzięki którym mogę wykorzystać możliwości MS Graph API budując przepływy pracy w Microsoft Flow.

Azure AD i rejestracja aplikacji

Na początek muszę zarejestrować nową aplikację w Azure Active Directory. W Centrum Administracyjnym Azure AD wybieram „App registration” a następnie „New registration”.

Rejestrując nowa aplikację muszę podać jej nazwę oraz wskazać typy kont, które mogą z niej korzystać. Dobrze, aby nazwa wskazywała jasno do czego, gdzie i przez kogo aplikacja jest wykorzystywana, dzięki temu łatwiej zarządzać tenantem.

Kiedy aplikacja zostanie utworzona, otrzymam dwa GUIDy – Tenant ID oraz Application (Client) ID, które są mi niezbędne i będę je wykorzystywać w requestach w Microsoft Flow.

Aby móc korzystać z aplikacji brakuje mi jeszcze „Client secret” oraz ustawienia odpowiednich uprawnień.

Wchodzę do menu „Certificates & secrets” i wybieram opcję „New client secret”.

Wprowadzam opis, np. “Client_secret” oraz wybieram okres, po jakim ma on ewentualnie wygasnąć, w tym przypadku nie chcę aby mój client secret wygasł kiedykolwiek. Dlaczego? Jeżeli tak się stanie muszę pamiętać o tym, w których Flow z niego skorzystałem, podmienić go na nowy gdy tylko ten wygaśnie. Dodatkowo, od czasu wygaśnięcia do czasu zastąpienia nowo wygenerowanym Flow nie będą działać prawidłowo.

Po wprowadzeniu powyższych informacji klikam „Add” i mój client secret zostaje utworzony.

Teraz ostatni krok, który muszę wykonać w ramach rejestracji aplikacji, czyli nadanie odpowiednich uprawnień.

Wchodzę do menu „API permissions”. Ponieważ chcę rozszerzyć uprawnienia do Microsoft Graph, które znajdują się już zna liście, zamiast „Add a permission” klikam na „Microsoft Graph”.

W nowym oknie wybieram zakres uprawnień, które chcę nadać. Przykładowo, jeżeli chcę aby mój Flow mógł przy pomocy Graph API tworzyć eventy w kalendarzach użytkowników mojego tenantu, muszę nadać uprawnienia Calendars.ReadWrite.

Po wybraniu wszystkich uprawnień, z których będę chciał korzystać klikam „Update permissions”. Należy pamiętać o tym, aby zawsze nadawać aplikacji najmniejszy wymagany poziom uprawnień i jedynie do tych aplikacji, z którymi faktycznie będziemy się integrować.

Teraz ostatni krok – chcę by aplikacja mogła automatycznie korzystać z uprawnień bez konieczności potwierdzenia ich przez użytkowników w osobnym oknie dialogowym, dlatego muszę pamiętać o kliknięciu „Grant admin consent…”

Moja aplikacja jest już zarejestrowana oraz ma nadane odpowiednie uprawnienia. Można zatem przejść do kolejnego etapu czyli do tworzenia przepływu pracy w Microsoft Flow.

Definiowanie przepływu w Microsoft Flow

Otwieram witrynę MS Flow i tworzę nowy, pusty przepływ.

Mój przykładowy Flow będzie się uruchamiał, w momencie gdy na kolekcji witryn „https://bwojciechowski.sharepoint.com/sites/splab01” na liście „Events” zostanie utworzony nowy element.

W kolejnych krokach inicjalizuję trzy zmienne typu string, które wykorzystam w moim requeście autoryzacyjnym do Graph API. Zmiennymi tymi są Tenant ID, Application ID oraz Client Secret. Podstawiam do nich wartości z zarejestrowanej aplikacji.

Kiedy mam już zdefiniowane wymagane zmienne, mogę przejść do kolejnego kroku, czyli do pobrania tokenu (access token).

Jako kolejny krok dodaję HTTP request i definiuję jego parametry w poniższy sposób:

  • Metoda: POST
  • URI: https://login.microsoftonline.com/var_TenatID/oauth2/token
  • W nagłówku dodaję:
    • Klucz: Content-Type
    • Wartość: application/x-www-form-urlencoded
  • Body requestu: client_id=var_ApplicationID&client_secret=var_ClientSecret&resource=https://graph.microsoft.com&grant_type=client_credentials

Zapisuję nasz Flow i testuję go tworząc nowy item na liście. Jeżeli aplikacja jest zarejestrowana prawidłowo, Flow powinien przejść od początku do końca bez problemów.

To co jest dla mnie istotne to access token, który został zwrócony w kroku „HTTP – MS Graph auth request” i dostępny jest w sekcji Output – Body.

Przechodzę we skazane miejsce i zaznaczam całą treść, którą mam dostępną w Body. Kopiuję ją do schowka.

W moim Flow dodaję kolejny krok typu „Parse JSON”. Jako jego content wskazuję na „Body” z poprzedniego kroku „HTTP – MS Graph auth request”. Klikam „Use sample payload to generate schema” i w otwarte okno wklejam skopiowaną wcześniej do schowka zawartość Body i klikam „Done”. Moja Schema zostaje utworzona automatycznie.

Tym oto sposobem mam pobrany access token, który mogę wykorzystać w kolejnych requestach w ramach tego konkretnego Flow.

W następnym wpisie wykorzystam go w praktyce, żeby utworzyć wpisy w kalendarzach użytkowników Office 365.

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *