SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
第19回 Office 365 勉強会
2017年6月3日
瀬尾佳隆 (@seosoft)
Microsoft MVP for Windows Dev
Skype for Business + Bot
+ Graph API
おことわり
本資料は、2017年6月3日時点の内容です
Slideshare 公開した 2018年1月時点では
一部古い内容を含んでいることがありますが、
記録・参考として公開します
自己紹介
瀬尾佳隆 (せおよしたか)
• MVP for Windows Development
• http://yseosoft.wordpress.com/
• 乃木坂46 / 欅坂46 と、仏像 / 屏風絵が好き
 Cogbot コミュニティ スタッフ
 Techfair 主宰
3
今日の内容
Bot Framework の概要
Skype for Business 対応
Bot で Graph API 利用
操作手順、コード例は資料後半に「おまけ」として載せてます
4
この資料の置き場所
http://bit.ly/s4bbot_20170603
“Skype for Business” + “Bot” + 今日の日付
5
今日の皆さんの宿題
Bot Framework が
Skype for Business に対応
• Preview なので、まだまだ課題があるのは事実
•企業内システムでも
Chat インターフェイスが増えるはず
今のうちにアイデアを練ってください
6
Build 2017
Bot Framework 関連のアップデート
• Channel 追加
• Skype for Business
• Adaptive Card
• LUIS 連携の強化
• Speech 対応
など
7
Bot Framework の概要
8
Bot とは
ユーザーとシステムとのコミュニケーションは
Dialog で行われる (Screen ではない)
https://docs.microsoft.com/en-us/bot-framework/bot-design-conversation-flow
9
Bot のアーキテクチャー
https://docs.microsoft.com/en-us/bot-framework/overview-how-bot-framework-works
10
Bot のアーキテクチャー
https://docs.microsoft.com/en-us/bot-framework/overview-how-bot-framework-works
ユーザーBot サービス 直接通信している
わけではない
11
Bot Framework
https://dev.botframework.com/
Bot 作成のツール、管理ポータルの集合体
• 開発ツール
• Bot 登録管理
• Bot Directory
• ドキュメント
12
Bot 開発に必要なもの
Bot Builder SDK
Bot Application Template
Bot Framework Emulator
Bot Connector
13
Bot Builder SDK
Bot 開発のためのライブラリ / API セット
• Bot Builder SDK for .NET
• Bot Builder SDK for Node.js
• Azure Bot Service
• REST API
14
Bot Application Template
Visual Studio 用のプロジェクトテンプレート
• http://aka.ms/bf-bc-vstemplate
• ZIP ファイルのままで、
“%USERPROFILE%¥Documents¥Visual Studio
2017¥Templates¥ProjectTemplates¥Visual C#¥”
にコピー
15
Bot Framework Emulator
Bot のデバッグツール
• https://docs.microsoft.com/en-us/bot-
framework/debug-bots-emulator
• 会話の流れ
• 会話の生データ (json)
• ログ
16
Bot Connector
Bot と Chat アプリとを接続する仕組み
• Chat アプリごとに Bot のコードを変更する必要がない
• Skype for Business が追加された (Build 2017)
17
Skype for Business 対応
18
現在は Preview
今後に期待 何を言いたいのか察してください・・・
https://msdn.microsoft.com/en-us/skype/Skype-For-Business-Bot-Framework/docs/overview19
Bot Connector (再確認)
Bot と Chat アプリとを接続する仕組み
• Chat アプリごとに Bot のコードを変更する必要がない
Chat アプリの種類に
よらず接続可能
20
Skype for Business + Bot
Bot と Skype for Business との接続もOK
• Skype for Business でも Bot を変更する必要ない
Skype for Business
であっても Bot 変更不要
Preview なので、いろいろ
課題はあるんですが・・・
21
現在の課題
シングルサインインできない
• 認証されているのは Skype クライアント
• Bot はユーザーが認証されていることを
知らない
• Bot では Chat アプリ固有のコードは
記述しない
Bot のプレゼンスが取れない
• オンラインでないと話しかけづらいかも
22
認証の方法
方法は 2つ
• OAuth 認証のコードを自力で書く
• AuthBot パッケージを使う
• ただし AuthBot は非公式、かつプレビューなので制約が多い
23
AuthBot
現在 Preview 版、非公式パッケージ
24
AuthBot の注意点
依存関係のある NuGet パッケージの
バージョン縛りがある
• 全パッケージを最新にすると
ビルドエラーや実行時エラー
• Preview が取れるのを
待ちましょう
2017年6月2日現在、
最新バージョンにしては
いけないパッケージ
25
AuthBot 実行結果 (1/4)
認証情報の要求
26
AuthBot 実行結果 (2/4)
認証
27
AuthBot 実行結果 (3/4)
マジックナンバーを送信
28
AuthBot 実行結果 (4/4)
認証成功
29
Bot で Graph API 利用
30
認証できたら、次は
Graph API 利用
• Graph エクスプローラーがあれば、アプリ実装は意外と簡単
31
Graph エクスプローラー
Graph API の呼び出し方を確認するのに便利
https://developer.microsoft.com/ja-jp/graph/graph-explorer 32
Graph API 呼び出し方
Graph API 呼び出しは定石通り Graph エクスプローラーの
クエリをペースト
(必要に応じて加工)
33
モデルの例 (1/2)
ユーザー情報の場合
34
モデルの例 (2/2)
カレンダー情報の場合
35
実行例
36
参考
37
情報源
Bot Framework
• https://dev.botframework.com/
SecuretaryBot 開発チーム Blog
• https://secretarybotja.wordpress.com/
Cogbot コミュニティ
• https://www.facebook.com/groups/cogbot/
瀬尾のセッション資料 (Cogbot 関連)
• https://docs.com/yoshitaka-seo/2037/cogbot
38
第6回 Cogbot 勉強会
Build 2017, de:code 2017 最新情報
2017年6月16日 (金) 19:30 開始
https://cogbot.connpass.com/event/58638/
39
おまけ 1
Bot 開発のポイント
40
コーディングのポイント
41
コーディングのポイント (1/5)
IDialog を実装したクラスで、
ユーザーとBotとの対話を処理
42
コーディングのポイント (2/5)
ここまでの対話の
必要な内容を保持できる
43
コーディングのポイント (3/5)
ユーザーが送信してきた
メッセージ
44
コーディングのポイント (4/5)
Bot からユーザーに返す
メッセージ
45
コーディングのポイント (5/5)
ユーザーからの
次のメッセージを待つ
46
おまけ 2
Bot 登録手順
47
Bot 登録手順 (1/8)
Bot を Azure App Service に展開
あとで使います
48
Bot 登録手順 (2/8)
Bot Framework の My bots で
[Create a bot]
49
Bot 登録手順 (3/8)
名前、ハンドル、説明を入力
50
Bot 登録手順 (4/8)
Bot のエンドポイントを入力
• サイト URL を “https” にして、末尾に “api/messages”
正確には Bot の
Controller名
51
Bot 登録手順 (5/8)
[Create Microsoft App ID and password]
でアプリ ID とパスワードを自動生成
• ID とパスワードはあとで使うので、メモ帳などに貼り付け
52
Bot 登録手順 (6/8)
管理者のメールアドレスを入力して、登録
53
Bot 登録手順 (7/8)
Visual Studio に戻って、web.config を編集
• AppID, Password を入力
• 最後にもう一度デプロイして、config を反映させる
54
Bot 登録手順 (8/8)
My bot 画面の [Test] で動作確認
55
おまけ 3
Skype for Business の Channel 登録手順
56
Channel 登録手順
「Preview だから」ということもあってか・・・
登録手順がちょっと面倒
時間がかかる(テナントの設定反映 8時間!)
57
Channel 登録手順 (1/7)
My bot の [Add a channel] で
Skype for Business を選択
58
Channel 登録手順 (2/7)
[Learn how] をクリック
59
Channel 登録手順 (3/7)
あとは、このページの通り
60
Channel 登録手順 (4/7)
PowerShell の Skype for Business Online
Connector モジュールをインストール
※Skype for Business Bot 登録をする PC ごとに
初回の1回だけ
61
Channel 登録手順 (5/7)
管理者権限で PowerShell を開いて
以下のコマンドで、Office 365 の管理者で
サインイン
62
Channel 登録手順 (6/7)
AppId を使ってエンドポイントを追加
• 結果が返るまで 2~3分かかることも・・・
63
Channel 登録手順 (7/7)
あとは、ただ 8時間以上待つだけ・・・
• テナントへの反映が済むまでは
エラーメッセージが表示される
• あきらめて Bot 削除しないように
64
AuthBot の使い方 (1/4)
https://github.com/microsoftdx/AuthBot
65
AuthBot の使い方 (2/4)
web.config にキー 7個を追加
66
AuthBot の使い方 (3/4)
IDialog 実装クラス 1か所目
67
AuthBot の使い方 (4/4)
IDialog 実装クラス 2か所目
68
おまけ 5
Azure AD 認証のローカルデバッグ方法
69
AAD ローカルデバッグ
Azure AD 認証するアプリをローカルの IIS で
デバッグするためには、
SSL を有効
にする必要があります
70
AAD ローカルデバッグ方法 (1/3)
プロジェクトを選択して、
プロパティペインで
[SSL 有効] を “True” にする
• ポート番号が自動的に決まるのでメモ
71
AAD ローカルデバッグ方法 (2/3)
プロジェクトのプロパティ – [Web] で
[プロジェクトの URL] に先ほど決まった URL を指定
72
AAD ローカルデバッグ方法 (3/3)
F5 キーで Bot を起動すると、指定のポートで
SSL 有効な状態で起動
• PC ごとに初めての SSL 有効化の際には、証明書インストー
ルを求められる
73

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Adaptive Cardのデザインツール
Adaptive CardのデザインツールAdaptive Cardのデザインツール
Adaptive Cardのデザインツール
 
Bot Framework 最新情報 2017
Bot Framework 最新情報 2017Bot Framework 最新情報 2017
Bot Framework 最新情報 2017
 
QnA Maker 逆入門
QnA Maker 逆入門QnA Maker 逆入門
QnA Maker 逆入門
 
20150905 stream analytics
20150905 stream analytics20150905 stream analytics
20150905 stream analytics
 
Hyperlapse for Azure Media Servicesを使ってみた
Hyperlapse for Azure Media Servicesを使ってみたHyperlapse for Azure Media Servicesを使ってみた
Hyperlapse for Azure Media Servicesを使ってみた
 
Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう! Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう!
 
Windows10とRaspberryPiで MakerFaireTokyoに参加
Windows10とRaspberryPiでMakerFaireTokyoに参加Windows10とRaspberryPiでMakerFaireTokyoに参加
Windows10とRaspberryPiで MakerFaireTokyoに参加
 
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
 
PlayFabとCognitiveを 連携させて健全なゲーム運営を
PlayFabとCognitiveを連携させて健全なゲーム運営をPlayFabとCognitiveを連携させて健全なゲーム運営を
PlayFabとCognitiveを 連携させて健全なゲーム運営を
 
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
 
Bluemixクラウド開発入門 Devlivery Pipeline デモ
Bluemixクラウド開発入門 Devlivery Pipeline デモBluemixクラウド開発入門 Devlivery Pipeline デモ
Bluemixクラウド開発入門 Devlivery Pipeline デモ
 
すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討
 
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
 
Introduction to application architecture on asp.net mvc
Introduction to application architecture on asp.net mvcIntroduction to application architecture on asp.net mvc
Introduction to application architecture on asp.net mvc
 
IBM Bluemixクラウド開発入門 15分でわかるBluemix
IBM Bluemixクラウド開発入門 15分でわかるBluemixIBM Bluemixクラウド開発入門 15分でわかるBluemix
IBM Bluemixクラウド開発入門 15分でわかるBluemix
 
Microsoft機械学習の簡単な紹介
Microsoft機械学習の簡単な紹介Microsoft機械学習の簡単な紹介
Microsoft機械学習の簡単な紹介
 
Confluence と DITA による Webマニュアル作成フロー
Confluence と DITA によるWebマニュアル作成フローConfluence と DITA によるWebマニュアル作成フロー
Confluence と DITA による Webマニュアル作成フロー
 
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocppクロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
 
Sphinxで社内勉強会(Git)の
資料を作ってみた
Sphinxで社内勉強会(Git)の
資料を作ってみたSphinxで社内勉強会(Git)の
資料を作ってみた
Sphinxで社内勉強会(Git)の
資料を作ってみた
 

Similar a Skype for Business + Bot + Graph API

Similar a Skype for Business + Bot + Graph API (20)

Microsoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたMicrosoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてた
 
LINE Bot 開発のための Azure Logic Apps 入門
LINE Bot 開発のための Azure Logic Apps 入門LINE Bot 開発のための Azure Logic Apps 入門
LINE Bot 開発のための Azure Logic Apps 入門
 
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)
 
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
 
Bot Framework 最新情報 2018
Bot Framework 最新情報 2018Bot Framework 最新情報 2018
Bot Framework 最新情報 2018
 
Microsoft Search - Microsoft Graph connector と Search Federation の概要
Microsoft Search - Microsoft Graph connector と Search Federation の概要Microsoft Search - Microsoft Graph connector と Search Federation の概要
Microsoft Search - Microsoft Graph connector と Search Federation の概要
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
 
Global Office 365 Developer BootCamp 2018 - Japan
Global Office 365 Developer BootCamp 2018 - JapanGlobal Office 365 Developer BootCamp 2018 - Japan
Global Office 365 Developer BootCamp 2018 - Japan
 
Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)
 
Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.
 
Azure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取るAzure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取る
 
Azure × LINE でクラウドを楽しもう
Azure × LINE でクラウドを楽しもうAzure × LINE でクラウドを楽しもう
Azure × LINE でクラウドを楽しもう
 
Office アドインの紹介
Office アドインの紹介Office アドインの紹介
Office アドインの紹介
 
AI搭載の新しいBingとEdge
AI搭載の新しいBingとEdgeAI搭載の新しいBingとEdge
AI搭載の新しいBingとEdge
 
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
 
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
 
サーバーレスで作る スマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンドサーバーレスで作るスマホアプリバックエンド
サーバーレスで作る スマホアプリバックエンド
 
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
 
Teams の”チーム”と Office 365 グループを理解して Power Platform を活用せよ
Teams の”チーム”と Office 365 グループを理解して Power Platform を活用せよTeams の”チーム”と Office 365 グループを理解して Power Platform を活用せよ
Teams の”チーム”と Office 365 グループを理解して Power Platform を活用せよ
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 

Más de Yoshitaka Seo

Más de Yoshitaka Seo (20)

言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
 
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
 
AI-900 ポイント解説
AI-900 ポイント解説AI-900 ポイント解説
AI-900 ポイント解説
 
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
 
AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方
 
Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類
 
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
 
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリAPI ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリ
 
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)
 
BIerのためのAI入門
BIerのためのAI入門BIerのためのAI入門
BIerのためのAI入門
 
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析構造化データをツールで簡単に分析
構造化データをツールで簡単に分析
 
チャットボットの自然言語処理
チャットボットの自然言語処理チャットボットの自然言語処理
チャットボットの自然言語処理
 
Custom Visionを活用するためのTips
Custom Visionを活用するためのTipsCustom Visionを活用するためのTips
Custom Visionを活用するためのTips
 
Machine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみようMachine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみよう
 
VS Code Tools for AI の紹介
VS Code Tools for AI の紹介VS Code Tools for AI の紹介
VS Code Tools for AI の紹介
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
 
PowerApps アプリ開発入門
PowerApps アプリ開発入門PowerApps アプリ開発入門
PowerApps アプリ開発入門
 
Bot Service 概要
Bot Service 概要Bot Service 概要
Bot Service 概要
 
IoT キットハンズオンのソースコード解説します クラウド編 Part1 Section3
IoT キットハンズオンのソースコード解説します クラウド編 Part1 Section3IoT キットハンズオンのソースコード解説します クラウド編 Part1 Section3
IoT キットハンズオンのソースコード解説します クラウド編 Part1 Section3
 

Skype for Business + Bot + Graph API