「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Azure]]

* 目次 [#xa543de9]
#contents

*概要 [#w1c77c46]
-以下から構成されるBotを作成するためのフレームワーク。
以下から構成されるBotを作成するためのフレームワーク。

--Bot Server~
---Bot Builder SDK(C#・Node.js)を使って開発する。
---Bot Serverはチャット・サービスと連携し入出力を処理する部分。
#ref(無題.png,left,nowrap,Microsoft Bot Framework,50%)

--Bot Builder SDK~
---Bot State Service、Bot Connector、Cognitive Serviceと連携するインタフェースを提供
---ユーザ入力を理解して応答するのにインテリジェンスが必要な場合、[[別のプロダクト>#acdd414c]]を使用する必要がある。
**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~
**Bot State Service [#y30a8d00]
ユーザの状態を管理する。

--Bot Server~
Facebook Messanger や Skype などの各チャネルの仕様に合わせて適切にデータを変換する。
**Bot Connector [#l09ee910]
Facebook Messanger や Skype などの各チャネルから
-仕様に合わせて適切にデータを変換
-誰がどのBotに話しかけているかを渡す

--Bot Directory
---Bing や Cortana などから利用できるディレクトリに登録する。
---Bot Directory で公開することが前提(プライベートBot不可)
**Bot Directory [#w8884d6e]
-Bing や Cortana などから利用できるディレクトリに登録する。
-Bot Directory で公開することが前提(プライベートBot不可)

--Direct Line API(LINEと関係無いので注意)
---単純なREST APIとして呼べる。
---Bot Server直ではなく、Bot Connector経由の模様。
---Microsoft Bot FrameworkのDirect Line APIの簡単まとめ - Qiita~
**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
--Register a bot with the Bot Framework~
https://docs.microsoft.com/ja-jp/bot-framework/portal-register-bot
--Deploy a bot to the cloud~
https://docs.microsoft.com/ja-jp/bot-framework/deploy-bot-overview
--Configure a bot to run on one or more channels~
---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に関する記事が多い。
-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

-Azure Functionsを使って非同期処理のLINE BOTを作成する - Qiita~
https://qiita.com/yorifuji/items/7f892564958cf464a812

--Node.jsの例、全体のコードは50行程度、[[Azure Functions>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Functions]]を使用。

---yorifuji/azure-functions-line-echo-bot: Azure Funtions App for LINE echo Bot~
https://github.com/yorifuji/azure-functions-line-echo-bot

--大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita~
https://qiita.com/yoichiro6642/items/6d4c7309210af20a5c8f

--実運用に向けたLINE BOTサーバの実装例 - Qiita~
https://qiita.com/Matanabe/items/92a613411cd051f64cb9

--LINE Messaging APIでX-Line-Signatureの署名検証を行う(AzureFunctions/Node.js) - Qiita~
https://qiita.com/yorifuji/items/71e31baf896adb69f567

*参考 [#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]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS