2016年3月11日金曜日

Azure LogicApps で Twitter BOT を作る

前回の試行錯誤で悩んでいた件ですが、気が付けば再現しないようになっていましたw

そこで今回は LogicApps を使って簡単な Twitter BOT を作成する流れをまとめておきます。

LogicApps を作成し、デザイナーにて以下のように設定します。

image

まずはトリガとなる Twitter Connector です。トリガとして利用する場合は、上記のように何かツイートを検索してその結果が発生したら、という場合に限り処理を行うことになります。

この際に指定できる文字列ですが、Twitter 検索のパラメータが利用できるとなっており、詳しくは試せていませんが恐らくは =q の後に記載するパラメータがそのまま利用できるのではないか、と思われます。今回の例では @botkumaa とあるように、このアカウントに対して何かしらリプライを送ったものを検索するように設定します。

現在の Twitter Connector では内部に前回検索した ID を保持しているので、今回検索して抽出できたもの以降が、次回の検索にて対象となるようになっています。

image

続いての例としては Condition コネクタを利用して、検索できたツイートに特定のキーワードが含まれているかを判断させています。ここで OBJECT NAME に指定するのは検索対象となるものを指定するのですが、ここまでに利用しているコネクタが提供している出力については、画面に表示されているようにクリックするだけで選択が可能です。上記の例では、Twitter Connector が返却する値の中で、「ツイートされたテキスト」である Tweet Text をクリックしています。

RELATIONSHIP では判断条件を設定します。上記の例では Contains を選択しており、後続の ALUE 値が OBJECT NAME に含まれているかどうかを判定させています。ここで指定できる条件は一般的なプログラムで利用できるような条件がそろっています。

利用できる条件については、以下の通りです。

image

英語表記ですが、なんとなくはわかるのではないかと思います。

Condition コネクタによって特定のツイートを含んでいた場合の条件判定ができますので、今回はサンプルで何か適当な返事をさせてみます。

image

このように Condition コネクタの後には、条件を満たした場合に実行するものと、満たさなかった場合に実行するコネクタを設定できます。残念なのは、ここで Condition コネクタをネストさせるような使い方ができないという点です。これを現在行おうとした場合は、別に LogicApps を作成し、それを呼び出すなどの方法を採用する必要があります

このような形で設定することで、簡単な BOT が実装できるのは伝わったことと思います。力技になりますが、Condition コネクタを大量に羅列することで、もっと反応する幅を広げることができるようにもなります。

実際に私が用意した BOT の場合、別の Web サービスを利用してもう少し色々返事をできるようにしていますが、それについては後日公開します。

0 件のコメント:

コメントを投稿