「[[マイクロソフト系技術情報 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]]を使用する必要がある。 -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などからも接続可能。 -以下手順、同時に、非同期化も行っている。 >(Bot Connector経由で結果を取得する実装を見ると、~ そもそも、非同期化されているようにも見えるが...)。 **アカウントを用意 [#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 -Microsoft Bot Framework v3.0 からはじめる BOT 開発 - Qiita~ http://qiita.com/annie/items/edc26c0ee9603e84a2e4 -Microsoft Cognitive Services & Bot Framework Advent Calendar 2016 - Qiita~ 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 ---- Tags: [[:クラウド]], [[:Azure]]