Typing indicator は、文字の入力中に出てきそうなあれです。
Bot Framework では簡単に実装ができるので、実装しておくといい感じになるでしょう(最後に残念なオチがありますが…)
今回の実装はもちろんC#ですが、Nodeでももちろん同じことができます。
Environment
- Visual Studio 2017
- Nuget: Microsoft.Bot.Builder 3.8.2
コーディング
今回は、「メッセージ受け取ったら必ずTyping indicator を表示しておく」という想定としました。Bot Framworkのプロジェクトを作ったデフォルトでは、メッセージのやり取りをするエントリーポイントは MessagesController
の Post
メソッドですね。
とりあえず、その最初(9行目)に typing indicator を呼び出すSendTypingsAsync
メソッドを書いてみましょう(メソッドの中身の実装は後述)。処理が速いとtyping indicator が表示されないので、デモ用に12行目で毎回3秒待たせてます。
SendTypingsAsync
メソッドの実装は以下です。
みたままの雑でシンプルな実装ですが、7行目の GetTypingActivity
メソッドで typing indicator を表示するメッセージを生成しています。9行目で、string.Empty
の代わりに文字を入れても何も reply.Type
に ActivityTypes.Typing
を設定すると文字は表示されないようです。
超簡単ですね。Emulatorで試すとこんな感じです。
Channel Inspector の利用
残念なオチのコーナーです。
各Channelごとにどんな見た目になるかを確認するのに、Web上で Channel Inspector をいうツールが用意されています。「Channel」と「Feature」を選択すると見た目を確認できます。
Facebook Messager や Slackとかいくつかで使えそうですが、画像が No preview available なのは使えなそうです。WebChatで試しましたが使えなかった(何も表示が出なかった)です。
ここら辺の事情でしょうかね。
DirectLine ではどうなのか試していないですがどうでしょうね….
余談
全然関係ないですが、LINE の channel integration のFeature Request、" enhancement “ のラベルがつきましたね。19しかいいねついてないですね。….Channel ができれば開発者の目にとまる→見る→…→間に何があるかわかりませんが、世界により一層認知されるとかなるとLINEだけでなく日本もBotの開発者も盛り上がると思うので実装されることを期待しています♪
Bot Frameworkまわりの基本的な機能はちょっとずつ書いていこうと思っていますー♪