HubotにDOCOMOの雑談会話のAPIを導入してみた

おこんばんわ。

久しぶりの投稿も hubot ネタでございます。

今回はDOCOMOが提供している雑談会話のAPIを導入してみました。今回はちょっと js 的に yutapon のスペシャルサンクスのおかげでうまくいきました。ありがとう

DOCOMOAPI

雑談会話以外にも結構いっぱいあります

雑談会話の仕様確認

仕様はだいたいここに書かれていることがすべてです

アプリケーション登録

APIを使用するためのTOKENを発行するためにアプリケーションの登録が必要です。
以下のページからアナウンスに沿ってアプリケーションの登録を進めていきます。特に不自由なく進められるはずです

hubot へ導入

アプリケーションの登録が済んだらアプリケーション詳細ページからAPIのTOKENが発行されているはずです。

あとは hubot で docomo api を使ったコードを仕込むだけ

サンプルコードはこんな感じ↓

request = require('request').defaults({
  strictSSL: false
})

module.exports = (robot) ->
  api = "https://api.apigw.smt.docomo.ne.jp/dialogue/v1/dialogue/?APIKEY=#{process.env.HUBOT_DOCOMO_TOKEN}"

  robot.hear /(.*)/, (msg) ->
    query = msg.match[1]
    request.post(api, body: JSON.stringify({utt: query}), (error, response, body) ->
      msg.reply "#{JSON.parse(body).utt}"
    )

普段 HTTP REQUEST は request を使用しているんだけれども

strictSSL の設定が default だと true になっていて、これのせいで↓みたいな error が出ていたつまずいた

ERROR Error: CERT_UNTRUSTED

あとは request.post の body を JSON 形式にしていなかったので

リクエストの形式がただしくありません

みたいなのが出ていてだいぶつまずいた(ここは id:yutapon に教えてもらた)

これであとは slack で実行してみてこんな感じ

f:id:sasarky:20140626010645p:plain

お前どこでこの言葉覚えたってのが第一印象