こんにちは。ディレクターのエリカです。
ふと「誰かとチャットしたい!」って思うこと、定期的にありますよね。でも、手頃なチャットツールが見つからない……。
そんなときは、DIYをしてみるのはいかがでしょうか。
そのための手順について、前回の「画面作成編」に続き、今回は「相手作成編」として解説をしていきます。
相手を作成するために必要なもの
主に使用するものは以下のAPIです。
- NTT docomo の API
まずはNTT docomoでAPIの利用手続きをします。
APIの利用手続き
下記のサイトへアクセスします。
docomo Developer support
アカウント新規登録
アカウントの新規登録をします。
docomo Developer support – 新規登録
https://dev.smt.docomo.ne.jp/?p=account.input
新規登録ができたらログインします。
APIの利用申請
下記からAPIの利用申請を行います。
https://dev.smt.docomo.ne.jp/?p=mypage.api.new.input
アプリケーション登録 | 任意 |
---|---|
アプリケーション名 | 任意 |
アプリケーション概要 | 任意 |
サービス開始予定日 | 任意 |
アプリケーションタイプ | ウェブアプリケーション |
コールバックURL | https://dummy |
提供者名 | 任意 |
サポートメールアドレス | 任意 |
「任意」の箇所については、実際にサービスとして公開する予定であれば、正しい情報をそれぞれ入力してください。
上記を入力したら、次の画面でAPI機能を選択します。
今回は、「雑談対話」を選択してください。
これで、利用申請は完了です。
API keyの確認
「マイページ > アプリ/APIの申請・管理」からアプリケーション情報が確認できます。先ほど申請したアプリケーションのAPI key欄の値が必要になるので、メモしておきます。
APIを利用する
前回までに作成したチャットツールに、APIを利用する機能を追加します。
requestモジュールのインストール
requestをインストールしましょう。
npm install request --save-dev
実装
それでは、画面からメッセージが送信されたら、雑談対話APIに送信するように実装してみましょう。
app.jsと同じ階層に、talk.jsを作成します。下記ページから仕様書をダウンロードしましょう。
https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_docs_id=4#tag01
仕様書に記載されているリクエスト仕様のURLと、クエリパラメータのAPIキー、および、先ほどのアプリケーションのAPI keyを組み合わせたURLを準備します。
talk.js
var request = require('request'); // requestモジュールを読み込みます var talk = function (msg, ctx, mode, fn) { var options = { uri: '準備したURL', body: {utt: msg, context:ctx, mode:mode}, json: true }; request.post(options, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body); fn({utt:body.utt, context:body.context, mode:body.mode}); } else { console.log('error: ' + response.statusCode); } }); } module.exports = talk;
これは、APIにリクエストを送信し、レスポンスを受け取って処理を行うものです。
次に、前回作成したio.jsを改修します。
ブラウザに入力されたメッセージで、下記の処理を行うようにします。io.js
var socketio = require('socket.io'); var talk = require('./talk'); function io(server) { var io = socketio.listen(server); var context, mode; io.on('connection', function (socket) { socket.on('chat message', function(msg){ io.emit('chat message', 'あなたたち : ' + msg); talk(msg, context, mode, function(res){ console.log(res); context = res.context; mode = res.mode; io.emit('chat message', 'わたし : ' + res.utt); }); }); }); } module.exports = io;
確認
npm start
して、 http://localhost:3000/ にアクセスします。
ページ下部のテキストフィールドに文章を入力し、Sendボタンを押してみてください。入力に応じた内容が表示されます。
まとめ
これで、相手がいなくてもいつでもチャットできるようになりました。
初回にお話した、Herokuにデプロイすればいつでもどこでもお話できますね。ちなみに、「しりとりしよう」というと、しりとりしてくれます。
私は、完勝しましたよ。
【よりよいチャットライフを】
※ チャットツールをGitとNode.jsとHerokuでDIYする方法〜環境構築編〜
※ チャットツールをGitとNode.jsとHerokuでDIYする方法〜画面作成編〜
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。