
ぐるなび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);
}
}
);
}
}
