Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Skype for Business + Bot + Graph API

586 views

Published on

第19回 Office 365 勉強会 (2017年6月3日開催) セッション資料

Docs.com サービス停止のため、資料を引っ越しました。
Slideshare 公開時点では古い内容を含んでいることがありますが、記録・参考として公開します。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Skype for Business + Bot + Graph API

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

×