自然対話API(docomo)+hubotによりBOTと雑談してみた
はじめに
Hubotにdocomoの自然対話APIを導入することでBOTと雑談できるようにしてみました。
※docomoの雑談対話APIは2018年06月に終了し、新たに自然対話APIがリリースされたようです
自然対話APIの設定
- 1: docomo Developer supportにアクセスし、新規に登録する
- 2: docomo Developer supportにログイン
- 3: [新規API利用申請]でアプリケーションを登録
必須項目は任意の内容を記入
アプリケーション名:hogehoge
アプリケーション概要:ユーザと雑談可能なBOT
サービス開始予定日:20xx/xx/xx
アプリケーションタイプ:ウェブアプリケーション
コールバックURL:https://dummy
提供者名:hoge
サポートメールアドレス:hoge@hoge
API機能は自然対話:雑談対話
をチェックする
- 4: アプリケーション登録後、[マイページ]→[API利用申請・管理]から
API Key
をメモ - 5: API経由でユーザ登録を実施
- POSTMANのインストール
- 以下の画像を参考に
API Key
やURL:https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/registration
を記入し、Sendを押下 ※hogehogeはマイページから取得したAPIに変更 - レスポンスから
appId
を取得
Hubot側設定
- 1: 必要パッケージのインストール
$npm install -g require
- 2: ./scripts/docomoapi.coffeeの追加
module.exports = (robot) ->
status = {}
robot.respond /(\S+)/i, (msg) ->
message = msg.match[1]
HUBOT_DOCOMO_DIALOGUE_API_KEY = process.env.HUBOT_DOCOMO_DIALOGUE_API_KEY
HUBOT_DOCOMO_DIALOGUE_APPID = process.env.HUBOT_DOCOMO_DIALOGUE_APPID
url = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY='+HUBOT_DOCOMO_DIALOGUE_API_KEY
headers = {'Content-Type':'application/json'}
d = new Date()
appSendTime = d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2) + ' '\
+ d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds()
request = require('request');
request.post
url: url
headers: headers
json:
language: "ja-JP"
botId: "Chatting"
appId: HUBOT_DOCOMO_DIALOGUE_APPID
voiceText: message
clientData: {"option": {"mode":"dialog","t":"kansai"}}
appRecvTime: status['appRecvTime']
appSendTime: appSendTime
, (err, response, body) ->
msg.send body.systemText.expression
status =
"appRecvTime": body.serverSendTime
自然対話APIに変更され仕様も変わった影響か(?)、自分の環境で上手く動作するパッケージやソースがありませんでした。
そのため、今回は以下のURLのソースコードを参考に作成しました。
※リクエストキーの値は適宜変更してください。
- https://gist.github.com/FromAtom/066215d061eb9837e77e
- https://github.com/bouzuya/hubot-docomo-dialogue/blob/master/src/scripts/docomo-dialogue.coffee
- https://github.com/toshimaru/hubot-docomochatter/blob/master/src/scripts/docomochatter.coffee
- https://github.com/mako09/hubot-wapuu-scripts/blob/master/docomo-dialogue.coffee
- 3: 環境変数の追加
HUBOT_DOCOMO_DIALOGUE_API_KEY
: APIキー
HUBOT_DOCOMO_DIALOGUE_APPID
: POSTMANで取得したappID