ぐるなびAPIのLINEBOT利用
ぐるなびAPIをLINEBOTに利用してみる。
以前、ぐるなびAPIを見つけて雑談記事を投稿したが、
今回は実際にそのぐるなびAPIを利用して、
LINEBOTにてランチ情報の検索を行えるようにしたいと思う。
1 . ぐるなびAPIに会員登録をしてAPIKeyを発行する。
ここは特に難しい情報を入れることがないので、細かくは割愛します。
(アプリケーション名とかは適当でいいと思います笑)
2 . メールで送られてくるAPIKeyを保存する。
3 . APIKeyを使ったソースをコーディングする。
一般的にAPI利用と同様に、単純にAPIリクエストを行って
その応答をLineのAPI情報にセットします。
流れとしては
APIアドレスとAPIKeyと各種オプションをセット
↓
HTTPリクエスト
↓
レスポンス取得
↓
LINE Message APIにお決まり文言とお店の情報をセット
↓
LINE Message API リクエスト
ざっくりだとこんな感じですね。(シンプル)
下記サンプル
const request = require('request'); exports.lunchSearch = function(event, callback) { if (event.message.latitude && event.message.longitude) { var req = request.get({ url: 'https://api.gnavi.co.jp/RestSearchAPI/20150630', qs: { keyid: '会員登録して取得したAPIKey', format: 'json', latitude: event.message.latitude, longitude: event.message.longitude, hit_per_page: '1', lunch: '1' } }, function(error, response, body){ try { if (response) { var res = JSON.parse(body); var restName = res.rest.name; var restUrl = res.rest.url; var response = {}; response.type = "text"; response.text = "この付近500mでランチ営業を行っているお店を検索した結果\n\n「" + restName + "」\nというお店がありました。\n\n" + restUrl; callback(response); } } catch(e) { console.log("想定外エラー"); console.log(e); var response = {}; response.type = "text"; response.text = "お店の検索に失敗しました。"; callback(response); } } ); } }