伝説のどいつまの伝説~失敗編~

岩美に永住したい新米エンジニアのあれやこれやな話。

【C#】【Bot】Slack Bot で推したちと会話したい!Part.2

前回までのあらすじ

前回、果て無き荒野への一歩を踏み出したオタク。
Free! の主人公、七瀬遙に "俺はフリーしか泳がない" と発言させることに成功した。
▼前回の内容はこちらから。
d01tsumath.hatenablog.com


ちなみに、 Free! とはなんぞや?という方は、Netflixdアニメストアをはじめとした動画配信サービスにて配信中なので是非ご視聴ください!
いわゆる "異次元系スポーツ" ではないので、安心して視聴できると思います。
iwatobi-sc.com




【Slack Bot シリーズの目標】
  1. Bot を5つ作る
2. 各キャラと、ある程度の会話をできるようにする
  3. Channelの中で会話できるようにする


今回はここを重点的に掘り下げて進めていこうと思います。
会話といっても、機械学習まで手をつけると収拾がつかなくなるので、
まずは特定の言葉に対してレスポンスするに留めます。

Incoming Webhooks だと、メッセージ送信のみしかできないので、まずはメッセージ (コマンド) に対してメッセージ送信するという形に変更していきます。


Slash Commands の設定

Slash Commands を使って、会話しているようなものを作っていきます。

Function を作成する

Slash Commands 用の Function を作っていきます。
Azure portal を開き、任意のリソースグループより、[Function App] を選択します。
色々記入して、サクサク Function を作っていきます。
Function のデプロイが終わったら、前回作った SlackBotTest を作った Fucntion にデプロイします。
うまくデプロイができたら、[実行] を押して確認してみましょう。
f:id:d01tsumath:20191014233246p:plain
実行がうまくいったら、次は Slash Commands に登録します。


コマンドを追加する

[Slack api] のページを開き、[Slash Commands] > [Create New Command] を選択します。
[Command] のところに、「/」と任意の文字列を入れます。
[Request URL] のところには、さきほど作った Function の URL を入れました。

f:id:d01tsumath:20191014224308p:plain
あとは必要に応じて記入したりチェックして、右下にある [Save] で設定を保存します。


実際に、コマンドを実行してみます。
「/talk おはよう」と打ち込んでみます。実際には「/talk」だけでも良いし、時間帯的には「こんばんは」or「おやすみ」なんですけども。
f:id:d01tsumath:20191014224934p:plain

すると、何やらセリフ以外のレスポンスが返ってきました。
f:id:d01tsumath:20191014225138p:plain
中身的には API 叩いたときの Response の中身が丸見えになっているだけのようですね。

しかも、コマンドを叩かないとレスポンスできないのも、ちょい不満があります。
なにかいい方法がないものか…。
[Outgoing Webhooks] というものはあるけれど、作った Bot に移植できなさそうなのがなんとも不満です。
次回までの宿題にしようと思います( ˘ω˘ ;)