- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>Azure]]
* 目次 [#xa543de9]
#contents
*概要 [#w1c77c46]
以下から構成されるBotを作成するためのフレームワーク。
#ref(無題.png,left,nowrap,Microsoft Bot Framework,50%)
**Bot Server [#c3678bd8]
-Bot Builder SDK(C#・Node.js)を使って開発する。
-Bot Serverはチャット・サービスと連携し入出力を処理する部分。
**Bot Builder SDK [#k809d862]
-Bot State Service、Bot Connector、Cognitive Serviceと連携するインタフェースを提供
-ユーザ入力を理解して応答するのにインテリジェンスが必要な場合、[[別のプロダクト>Microsoft Cognitive Services]]を使用する必要がある。
-ユーザ入力を理解して応答するのにインテリジェンスが必要な場合、[[別のプロダクト>Azure Cognitive Services]]を使用する必要がある。
-Bot Builder SDKは、.NET Coreには対応していないが、REST APIで利用可能。
--[C#] Porting to .net core #572~
https://github.com/Microsoft/BotBuilder/issues/572
**Bot State Service [#y30a8d00]
ユーザの状態を管理する。
**Bot Connector [#l09ee910]
Facebook Messanger や Skype などの各チャネルから
-仕様に合わせて適切にデータを変換
-誰がどのBotに話しかけているかを渡す
**Bot Directory [#w8884d6e]
-Bing や Cortana などから利用できるディレクトリに登録する。
-Bot Directory で公開することが前提(プライベートBot不可)
**Direct Line API(LINEと関係無いので注意) [#b1cb7843]
-単純なREST APIとして呼べる。
-Bot Server直ではなく、Bot Connector経由の模様。
-Microsoft Bot FrameworkのDirect Line APIの簡単まとめ - Qiita~
https://qiita.com/makopo/items/0cf1055a5b9c8ac672e0
*開発手順 [#jf51350a]
-Bot Serverを実装・公開
-Bot Directoryへ登録
**参考 [#ed7c73c7]
-Microsoft Docs > Bot Framework
--Deploy a bot to the cloud~
https://docs.microsoft.com/ja-jp/bot-framework/deploy-bot-overview
---Register a bot with the Bot Framework~
https://docs.microsoft.com/ja-jp/bot-framework/portal-register-bot
---Configure a bot to run on one or more channels~
https://docs.microsoft.com/ja-jp/bot-framework/portal-configure-channels
*LINE対応 [#i6b8296f]
-LINE対応はしていないが、日本語リソースは圧倒的にLINEに関する記事が多い。
-Direct Line API(LINEと関係無いので注意)を使用すれば、LINEなどからも接続可能。
-以下手順、同時に、非同期化も行っている。
**アカウントを用意 [#o5a0abb9]
-Line APIのアカウント
-Microsoft Azureのアカウント
**Bot Serverを実装 [#lcd871c9]
Bot Builder SDKを使用してBot Serverを実装
**Bot Serverを公開 [#g2782d36]
Azure App Serviceとして公開
**Bot Directoryへ登録 [#mc8b3730]
***登録 [#aba24cc0]
My Botsから
-Bot Profileを入力
--Name
--Bot handle
--Description
-Configurationで設定
--Messaging endpoint(Azure App Serviceのendpoint)
--App IDとパスワードを生成してメモに控えておく。
***公開 [#p3d82179]
My Botsから
-登録したBOTを選択
-Direct Lineを追加
-Secret keysをメモに控えておく。
***キー設定 [#dc7e3a31]
App IDとパスワードをBot Serverに設定しAzure App Serviceとして再公開
**[[Function App>Azure Functions]]を作成する [#q3bbd33d]
***Gatewayを実装 [#z7efa244]
-[[Function App>Azure Functions]]を使用して実装。
-HttpTrigger-CSharpを選択。
-LINE---(HTTP)--->処理--->Storage
***Dispatcherを実装 [#s507d71c]
-[[Function App>Azure Functions]]を使用して実装。
-QueueTrigger-CSharpを選択。
-Storage--->処理---(HTTP)--->Bot Connector(Direct Line)--->Bot Server
-Dispatcherは、
--Bot Connector(Direct Line)への(POSTリクエストでの)アクセスに、Secret keysを使用する。
--Bot ServerからのレスポンスもBot Connector(Direct Line)経由で~
(GETリクエストで)受け取るので、ここでLINEへのレスポンスも処理する。
**LineAPIのWebHookを設定 [#he72f383]
[[Gateway>#z7efa244]]のエンドポイントに設定する。
**参考 [#d0e9ffa0]
-Brains Consulting Blog: MS BotFrameworkをLine対応する~
http://bci-blog.blogspot.jp/2016/12/ms-botframeworkline.html
-C# で LINE Bot | Ken’s Tech Blog~
https://blogs.msdn.microsoft.com/kenakamu/2017/01/10/linebotwithcsharp/
--Microsoft中村氏が作成したライブラリとアプリケーション~
https://github.com/kenakamu/line-bot-sdk-csharp
---Line Messaging API SDK
---Line Bot Application
---Line With Bot Framework Application
*参考 [#c540a525]
-Microsoft Bot Framework~
https://dev.botframework.com
-今こそMicrosoft Bot Frameworkを学ぼう - Docs.com~
https://docs.com/user278165/8677/microsoft-bot-framework
-サンプル
--具体的な機能を持ちボットとして動作する~
https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Samples
--BotBuilderの機能ごとに焦点をあてたサンプル~
https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp
-チャット - .NET 開発基盤部会 Wiki~
https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%e3%83%81%e3%83%a3%e3%83%83%e3%83%88
-Microsoft Bot Framework v3.0 からはじめる BOT 開発 - Qiita~
**Qiita [#wd49d46b]
-Microsoft Bot Framework v3.0 からはじめる BOT 開発~
http://qiita.com/annie/items/edc26c0ee9603e84a2e4
-英語のドキュメントを読みたくない人の為のBot Framework入門(C#編) - Qiita~
-英語のドキュメントを読みたくない人の為のBot Framework入門(C#編)~
https://qiita.com/ymisono/items/c6096fa62a68dda8001a
-Microsoft Cognitive Services & Bot Framework Advent Calendar 2016 - Qiita~
-Microsoft Cognitive Services & Bot Framework Advent Calendar 2016~
https://qiita.com/advent-calendar/2016/cogbot
-チャット - .NET 開発基盤部会 Wiki~
https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%e3%83%81%e3%83%a3%e3%83%83%e3%83%88
**MSDN magazine [#je072df7]
-Microsoft Bot Framework - アプリケーション データに時間や場所を問わずアクセスするために Bot Framework を使用する~
https://msdn.microsoft.com/ja-jp/magazine/mt790202
-Bot Framework - ボットをさらにインテリジェントにする~
https://msdn.microsoft.com/ja-jp/magazine/mt795186
**github [#h4c77650]
-具体的な機能を持ちボットとして動作する~
https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Samples
-BotBuilderの機能ごとに焦点をあてたサンプル~
https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp
----
Tags: [[:クラウド]], [[:Azure]]