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

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください