BEACHSIDE BLOG

MicrosoftとかC#を好むレンジャーの個人的メモ

Typing indicator の送信 - Bot Framework の基本機能

Typing indicator は、文字の入力中に出てきそうなあれです。

f:id:beachside:20170630154000g:plain

Bot Framework では簡単に実装ができるので、実装しておくといい感じになるでしょう(最後に残念なオチがありますが…)

今回の実装はもちろんC#ですが、Nodeでももちろん同じことができます。

Environment

コーディング

今回は、「メッセージ受け取ったら必ずTyping indicator を表示しておく」という想定としました。Bot Framworkのプロジェクトを作ったデフォルトでは、メッセージのやり取りをするエントリーポイントは MessagesControllerPost メソッドですね。

とりあえず、その最初(9行目)に typing indicator を呼び出すSendTypingsAsync メソッドを書いてみましょう(メソッドの中身の実装は後述)。処理が速いとtyping indicator が表示されないので、デモ用に12行目で毎回3秒待たせてます。

SendTypingsAsync メソッドの実装は以下です。

みたままの雑でシンプルな実装ですが、7行目の GetTypingActivity メソッドで typing indicator を表示するメッセージを生成しています。9行目で、string.Empty の代わりに文字を入れても何も reply.TypeActivityTypes.Typing を設定すると文字は表示されないようです。

超簡単ですね。Emulatorで試すとこんな感じです。

f:id:beachside:20170630153925g:plain


Channel Inspector の利用

残念なオチのコーナーです。

各Channelごとにどんな見た目になるかを確認するのに、Web上で Channel Inspector をいうツールが用意されています。「Channel」と「Feature」を選択すると見た目を確認できます。

f:id:beachside:20170630154031p:plain

Facebook Messager や Slackとかいくつかで使えそうですが、画像が No preview available なのは使えなそうです。WebChatで試しましたが使えなかった(何も表示が出なかった)です。

ここら辺の事情でしょうかね。  

Not getting typing indicator on the chat window · Issue #219 · Microsoft/BotFramework-WebChat · GitHub

DirectLine ではどうなのか試していないですがどうでしょうね….


余談

全然関係ないですが、LINE の channel integration のFeature Request、" enhancement “ のラベルがつきましたね。19しかいいねついてないですね。….Channel ができれば開発者の目にとまる→見る→…→間に何があるかわかりませんが、世界により一層認知されるとかなるとLINEだけでなく日本もBotの開発者も盛り上がると思うので実装されることを期待しています♪

github.com

Bot Frameworkまわりの基本的な機能はちょっとずつ書いていこうと思っていますー♪