第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

More Related Content

PPTX
Azure Machine Leaning Workbench の使い方
PDF
IoT キットハンズオン解説 (Azure ML Studio 編) Part3 分類分析
PDF
IoT キットハンズオン解説 (Azure ML Studio 編) Part1 共通手順
PDF
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化
PDF
機械学習と Azure ML Studio の基本
PDF
C# で QnA Bot
PDF
GR Family 用ライブラリの紹介
PDF
20160416 Azure Data Lakeのはまりどころ
Azure Machine Leaning Workbench の使い方
IoT キットハンズオン解説 (Azure ML Studio 編) Part3 分類分析
IoT キットハンズオン解説 (Azure ML Studio 編) Part1 共通手順
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化
機械学習と Azure ML Studio の基本
C# で QnA Bot
GR Family 用ライブラリの紹介
20160416 Azure Data Lakeのはまりどころ

What's hot (20)

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

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

PDF
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
PDF
Bot Service 概要
PDF
Bot Framework 最新情報 2018
PPTX
Azure Bot!! Microsoft Bot Framework で簡単Bot開発
PPTX
Microsoft bot frameworkを触ってみた
PDF
TypeScript x Bot Framework
PDF
[Japan Tech summit 2017] PRD 002
PDF
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...
PDF
Power app custom api v0.1.21.1221
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
PDF
Bot Framework v4 開発 Tips 2018-11
PDF
Bot Builder V4 SDK + QnA Maker / LUIS
PDF
チャットボット開発を取り巻く環境と Cogbot コミュニティ
PPTX
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
PPTX
Bot frameworkでbot入門
PDF
Bot × Office 365 〜 Microsoft Bot Framework と Microsoft Graph API を使った業務システムの新...
PDF
Microsoft Bot framework 概要
PDF
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
PPTX
Microsoft Graphを使ってアプリケーションを作った時の話
PDF
これでできる! Microsoft Teams アプリ開発のポイント徹底解説
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
Bot Service 概要
Bot Framework 最新情報 2018
Azure Bot!! Microsoft Bot Framework で簡単Bot開発
Microsoft bot frameworkを触ってみた
TypeScript x Bot Framework
[Japan Tech summit 2017] PRD 002
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...
Power app custom api v0.1.21.1221
Microsoft Graph APIを活用した社内アプリケーション開発
Bot Framework v4 開発 Tips 2018-11
Bot Builder V4 SDK + QnA Maker / LUIS
チャットボット開発を取り巻く環境と Cogbot コミュニティ
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
Bot frameworkでbot入門
Bot × Office 365 〜 Microsoft Bot Framework と Microsoft Graph API を使った業務システムの新...
Microsoft Bot framework 概要
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
Microsoft Graphを使ってアプリケーションを作った時の話
これでできる! Microsoft Teams アプリ開発のポイント徹底解説
Ad

More from Yoshitaka Seo (20)

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

Recently uploaded (7)

PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PDF
Working as an OSS Developer at Ruby Association Activity Report 2025
PDF
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Working as an OSS Developer at Ruby Association Activity Report 2025
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)

Skype for Business + Bot + Graph API