HubotにDOCOMOの雑談会話のAPIを導入してみた
おこんばんわ。
久しぶりの投稿も hubot ネタでございます。
今回はDOCOMOが提供している雑談会話のAPIを導入してみました。今回はちょっと js 的に yutapon のスペシャルサンクスのおかげでうまくいきました。ありがとう
DOCOMOのAPI
雑談会話以外にも結構いっぱいあります
雑談会話の仕様確認
仕様はだいたいここに書かれていることがすべてです
アプリケーション登録
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 で実行してみてこんな感じ
お前どこでこの言葉覚えたってのが第一印象