Quantcast
Channel: ウィリアムのいたずらの、まちあるき、たべあるき
Viewing all articles
Browse latest Browse all 7271

Yelp APIを使って、東京のマクドナルドを検索する方法

$
0
0

げ、食べログAPI使えないんだ。ってことで、Yelp API
http://blog.goo.ne.jp/xmldtp/e/9e5d2883cd932f501296c27b423a40f3

のつづき(実践編)。
yelpAPIを使って、東京のマクドナルドを検索する。
PHPで作ってみる。



■システム構成

ロリポップ上にホストがあり、そこにPHP(sample.php)を置いている。
そのPHP(sample.php)が、yelp APIにアクセスしている。
ブラウザで、そのPHPファイル(sample.php)を表示している。

手順は、以下の通り。
・まず、yelpにサインアップ
・APIキー等を取得
・サンプルプログラムをダウンロード
・サンプルプログラム修正
・sample.phpをアップロード、表示
以下、詳細に



■まず、yelpにサインアップ

Yelp for Developers
http://www.yelp.com/developers

に行く。

「GetStart」をクリック。
ログインしていなければ(できっこない。まだ登録してないんだから)
以下の画面がでるはず

Sign Upをクリック

名前とかをいれて、Sign UPなんだけど、ここで、ZIP Codeとあるんで、
素直に郵便番号を入れると・・・
エラーになって、郵便番号の下に、国名が入れられるようになる。Japanを選択

なんか、登録できた旨が表示される。
ここで、メールアドレスを入れていると思うんだけど、
そのメールアドレスにメールが来ているかチェック(着ているはず)

メールの「Confirm Email」をクリック。



■APIキーを取得
サインアップが成功しているブラウザで(つまり、ログイン後?)

Yelp for Developers
http://www.yelp.com/developers

に行って「GetStart」をクリックしたら、以下の画面になったんだけど、

それでいいのかな?とにかく、この画面から・・・

Your Website URLには、PHPを置くサイト(ロリポのabc.main.jp上に置くのなら、abc.main.jp)
How you will use the APIは、Searchとした。いいのかな?
Industryは、otherで、そうすると、下に空欄が出たから、softwareと入力した。もう適当。
その下のチェックボックスに(同意するか)チェックして、submit

っていう画面が出てきて、キーが入力できる。(実際には、この右側にキーが出る)

コピーをとって控える。後で使う。



■サンプルプログラムをダウンロード
 サンプルが以下のサイトにある。

https://github.com/Yelp/yelp-api/blob/master/v2/php/sample.php


Rawをクリックすると、テキストがでてくるので、それをファイル保存して、sample.phpとして
保存する。

 このソースを見ると分かるけど、OAuthのライブラリを使っている。それは

https://github.com/Yelp/yelp-api/blob/master/v2/php/lib/OAuth.php

にある。おなじく

Rawをクリックすると、テキストがでてくるので、それをファイル保存して、OAuth.phpとして
保存する。このOAuth.phpは修正しなくていい。そのまま使う(libフォルダは作成するけど)



■サンプルプログラム修正
 ダウンロードしてきたサンプルプログラムsample.phpのほうは、修正する。
 まず、開いて、

はじめのほうにある、$CONSUMER_KEY以下4つは、「APIキーを取得」で取得した、キーとか、トークンとかそのたもろもろ(4つあるはず)をいれる(順番に)。

 その下の、$DEFAULT_TERMを修正すると、本来その言葉、場所を検索するんだけど、このままだと
分かりにくいので、今回は、ここを「直さないで」以下のところを直す。

 まず、110行目あたり、

  $url_params['term']=$term;
  $url_params['location']=$location;

と、引数をそのまま入れるようにする。

 そして、最後のあたり

$optionに入れているところからコメントアウトして、
$termに、検索したいマクドナルド(英語で"mcdonalds")、$locationに"tokyo"といれて、
query_apiを呼ぶと加工してしまうので
search($term,$location);を呼んで、プリントアウトする。
こうすれば、JSONがそのまま見える。



■sample.phpをアップロード、表示
 今回は、ロリポップを使うという話なので
 sample.phpを直下におき、
 libというフォルダをつくり、その下にOAuth.phpをおく
ことになるけど、他のプロバイダでも、同じように、sample.phpは直接見えるところ、
OAuth.phpはlibの下になるように置く。

 そして、sample.phpをアクセスすると

みたいなかんじで、JSON形式で、検索結果が見れる。

緯度経度指定などは、

https://www.yelp.com/developers/documentation/v2/search_api

を参照。cllだと思うけど、今やっている時間が無いので、また今度。

【参考サイト】

http://imagination-i.net/2014/04/15/javayelp-api%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/

https://www.imamura.biz/blog/20635

Viewing all articles
Browse latest Browse all 7271

Trending Articles