Wraz z nową wersją Power Virtual Agent i jego ogólną dostępnością (GA, 2 grudnia 2019 r.) do narzędzia dodano szereg nowych funkcji. Jedną z nich jest funkcjonalność, która pozwala nam opublikować bota i używać go na przykład w Teams. Lub w Messenger. Lub w Slack. Lub …

Gdzie można opublikować PVA?

Channels where Power Virtual Agent can be published

Obecnie istnieją dwa rodzaje Kanałów (Channels). Pierwszy dostarcza interfejs integracji pozwalający łatwo skonfigurować PVA jako chatbota. Drugi wymaga usługi Azure Bot Service jako platformy hostującej czatbota.

Jeśli chcesz opublikować bota PVA w Teams lub Messenger – jest to dość łatwe, wystarczy wykonać kilka kroków, aby konfiguracja zadziałała.

Dla pozostałych, aktualnie istniejących Kanałów, czyli: Skype, Cortana, Slack, Telegram, Twilio, Line, Kik, GroupMe, Speech i Email potrzebna będzie usługa Azure Bot Service (jak to zostało opisane tutaj: https://docs.microsoft.com/en-us/power-virtual-agents/publication-connect-bot-to-azure-bot-service-channels).

Jak opublikować PVA w Teams?

Istnieje dość dobrze napisana dokumentacja i można z niej skorzystać ( https://docs.microsoft.com/en-us/power-virtual-agents/publication-add-bot-to-microsoft-teams), aczkolwiek dla mnie była ona w kilku miejscach dość nieprecyzyjna. Dlatego napisałem swoją instrukcję 🙂

Krok nr 1 – PVA

Będąc zalogowanym do Power Virtual Agent przejdź do podstrony „Publish” (1) i następnie kliknij przycisk „Publish” (2). Po opublikowaniu bota, kliknij łącze „Go to channels” (3) hyperlink.

Następnie kliknij kafelek „Microsoft Teams” (1). W otwartej karcie kliknij przycisk „Add” (2) i potem, gdy zakończy się proces dodawania aplikacji do Teams, kliknij przycisk „Copy” (3) by skopiować wygenerowane App ID.

Krok nr 2 – Microsoft Teams

Jeśli nie jesteś Tenant Adminem upewnij się, że polityki organizacyjne pozwalają na tzw. sideload aplikacji w Teams. Zapytaj, czy uprawnienia dla „Third party apps” są ustawione na „Allow all apps”:

Jeśli nie, przekonaj adminów, by zmienili ten wybór 😉 Ponieważ PVA nie jest aplikacją dostępną w Store, toteż wybór drugiej opcji: „Allow specific apps and block others” nie będzie w tej sytuacji żadnym rozwiązaniem, gdyż pozwala na wybór wyłącznie aplikacji obecnych w Store.

Następna rzecz, sprawdź czy posiadasz zainstalowany add-in „App Studio” w Twoim Teams. Będzie potrzebny do wygenerowania manifestu aplikacji i dodania Bota do kanałów/ czatu.

Kliknij ikonę wielokropka (1) i sprawdź, czy widzisz tam „App Studio” (2). Jeśli nie, kliknij link „More apps” (3), a następnie wpisz „App Studio” w polu wyszukiwania (4) i na koniec kliknij kafelek „App Studio” (5), a w otwartym oknie modalnym – przycisk „Add”. Na koniec otwórz aplikację.

Następnie kliknij „Manifest editor” i „Create a new app”.

Teraz wypełnij dane w zakładce „App details”. Podaj informacje dla wszystkich wymaganych pól. Możesz także skonfigurować branding.

Ważne! Dla tak utworzonego Bota, branding niestety nie będzie działać. Ikona będzie widoczna jedynie w widoku listy aplikacji dodanych do Teams. Jednak jako avatar Bota już nie.

Teraz przejdź do ustawień „Bot” (1). Tam kliknij „Set up” (2). W oknie modalnym kliknij „Existing bot” (3). Następnie wpisz nazwę i identyfikator aplikacji (4) skopiowane z Kroku 1, wygenerowane na stronie konfiguracji „Channels” w PVA. Na koniec wybierz konfigurację Scopes (5) i „Save” (6).

Teraz przejdź do sekcji „Domains and permissions” (1) i wprowadź token.botframework.com jako „Valid domain” (2). Na koniec kliknij „Add” (3).

Na koniec otwórz sekcję „Test and distribute” (1) i w sekcji „Install” (2) kliknij przycisk by zainstalować bota:

Zrobione!

I to wszystko! Teraz możesz przejść do czatu lub do określonego kanału Teams i rozpocząć rozmowę ze swoim Power Virtual Agent.

Obejrzyj poniższy film, aby zobaczyć szczegółowy przewodnik krok po kroku:

Ważne!

Zdałem sobie sprawę, że istnieje problem z ponownym uwierzytelnieniem. Ponieważ bot nie działa w kontekście użytkownika, chociaż podczas korzystania z Teams jesteś oczywiście uwierzytelniony, Bot nie ma do dostępu do tych informacji. Dlatego jeśli w konwersacji w Bot pojawi się funkcja „Authentication” (przeczytaj więcej tutaj) użytkownik wciąż będzie proszony o kliknięcie w przycisk i zalogowanie się.

I działa to poprawnie dla pierwszego uwierzytelnieniu. Niestety, po wygaśnięciu bearer token Bot nie wyświetla monitu o ponowne zalogowanie. Zamiast tego nadal używa starego tokena, co sprawia, że np. przepływy w Power Automate kończą się niepowodzeniem, ponieważ dostają odmowę dostępu w przypadku połączeń wymagających tego tokena.

Istnieje lista znanych ograniczeń dla tego rodzaju integracji: https://docs.microsoft.com/en-us/power-virtual-agents/publication-add-bot-to-microsoft-teams#known-limitations jednak ten problem na liście nie istnieje. Mimo to, mam nadzieję, że jest znany i zostanie rozwiązany szybko.