「人工知能ボットAPI」を使って Slack bot を作ってみた
ユーザーローカルから「人工知能ボットAPI提供開始のご案内」というメールが来た。
そういえば1ヶ月ぐらい前にツイッターでプレスリリースが流れてた気がする。
その時に申し込んだような・・・とか思いながら、せっかくだしAPIを何かに使ってみたくなった。
http://ai.userlocal.jp/
普段 slack を使ってるのもあって、とりあえず slack bot を作って、そいつに「人工知能」を組み込んでしゃべらせてみた。
1.slackでbotを作る & Botkitのインストール
残念ながら、なんちゃって技術職の私はbotの作り方すら知らなかった。
さっさと作ってAPIを試したかったので、極力楽できる方法を探してると、おあつらえ向きの記事が見つかった。
http://toach.click/slack-botkit/
http://dotnsf.blog.jp/archives/1054134334.html
1-1 slackでbotを作る
slackにログインした状態でここに飛ぶと、記事に書いてある通り簡単にボットが作れる。
https://my.slack.com/services/new/bot
作った bot は slack 内のどこかのチャンネルに招待しておく。
2.botに「人工知能API」を適用する
やっとAPIの部分だ。だがやはりラクに作りたい・・・とか願ってると、ちょうど参考になる記事が見つかった。
http://dotnsf.blog.jp/archives/1054183548.html
ボットの実体は slack_bot.js というファイルらしい*2。
このファイル、readme直後の最初の部分には初期設定的な何かが書いてあって、そこから下は
controller.hears( コマンド(≒botが受け取るメッセージ), メッセージの種類(メンションとかダイレクトメッセージとかの指定), function(bot, message){ : (処理の中身) : } );
という塊がいくつか並んでいる。塊の1つひとつが bot の機能になっている。
ということは、この並びの下にAPIを利用した controller.hears(~) を書けばいいんじゃね?となるわけだ。
「人工知能ボットAPI」は、リクエストを投げるとJSON形式でメッセージが返ってくる仕様なので、
JSON形式のデータを処理してるコードが見つかればなんとかなるかもしれない・・・
と思ってると、参考記事の最後にJSON形式の戻り値を処理するコードが書かれてたので、「ウヒョー」と言いながら使わせていただく*3。
controller.hears([''],'direct_mention', function (bot, message) { var massage_text = encodeURI(message.text); var request = require( 'request' ); url = 'https://chatbot-api.userlocal.jp/api/chat?key=YOUR_API_KEY=' + massage_text; request( url, function( error, response, body ){ if( !error && response.statusCode == 200 ){ var json = JSON.parse( body ); var bot_reply = json['result']; bot.reply( message, bot_reply ); } }); });