LoginSignup
19

More than 5 years have passed since last update.

「Botkit + 雑談対話API」を使ってSlack上でBotと会話してみる!

Last updated at Posted at 2016-09-05

Botkit

Slack用のBotを簡単に作るためのフレームワーク

https://github.com/howdyai/botkit

雑談対話API

docomoが公開している、ユーザが入力したテキストを受け付け、その入力に対して自然な会話となる雑談を提供する

https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=dialogue&p_name=api_usage_scenario

SlackのBotの追加

以下のURLにアクセスしてBotを作成する

2016-04-24_23h57_05.png

2016-04-24_23h59_29.png

※API token以外は必要な部分を変更する

docomo Developer supportアカウントの作成

以下URLからアカウントを作成する

  1. アカウント取得後、マイページから 新規API利用申請 を行う。
  2. API機能選択雑談対話 を選択する
  3. 申請した アプリケーション情報 から API key を取得する

node環境の構築

node環境を構築します。

※既にnodeがインストールされている場合は、飛ばしてください。

yum install epel-release
yum install nodejs npm --enablerepo=epel

Botkitインストール

git clone https://github.com/howdyai/botkit.git
cd botkit
npm install

Botkitサンプルを動作させる

token=[Slack Bot用のAPI Token] node slack_bot.js
  1. 適当なチャンネルに作成したBotを招待する
  2. @作成したbot名 hello
  3. Hello. と返してくれれば成功

雑談対話APIを組み込んだjsファイルを作成する

if (!process.env.token) {
    console.log('Error: Specify token in environment');
    process.exit(1);
}

var Botkit = require('./lib/Botkit.js');
var request = require('request');

var controller = Botkit.slackbot({
    debug: false
});

var bot = controller.spawn({
    token: process.env.token
}).startRTM();


var context = '';
var mode = 'dialog';
var place = '福岡';

controller.hears('', 'direct_message,direct_mention,mention', function(bot, message) {

    var options = {
        url: 'https://api.apigw.smt.docomo.ne.jp/dialogue/v1/dialogue?APIKEY={docomo雑談対話API keyを指定する}',
        json: {
            utt: message.text,
            place: place,

            // 以下2行はしりとり以外の会話はコメントアウトいいかも
            // 会話を継続しているかの情報
            context: context,
            mode: mode
        }
    }

    //リクエスト送信
    request.post(options, function (error, response, body) {
        context = body.context;
        mode = body.mode;

        bot.reply(message, body.utt);
    })

});

実行する

token=[Slack Bot用のAPI Token] node docomo.js

以下、2つのどちらかで会話することが可能

  1. 適当に @作成したbot名 適当な会話 で会話をする
  2. 「@作成したbot名 しりとり」と実行するとしりとりを行える(やり取り中も@ボット名が必要)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19