げ、食べログ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