#Yelp fusion APIを使用するまで
Yelp fusion API を使用していくまでの方法を備忘録的に書いていきます。
Yelp DevelopersDocumentation
https://www.yelp.com/developers/documentation/v3
#1.Yelpへの登録,アプリの作成
まず、最初にYelpのユーザ登録を行います。
https://www.yelp.com/developers
上記のページで
右上Sighinでユーザ登録を行います。
その後、https://www.yelp.com/developers/documentation/v3
に行きログインをします。
そして、左メニューのManageAppをクリックし、アプリケーションを作成します。
この時入力は各々適したものを入力します。
これにてアプリの作成は終了です。
#2.BearerTokenの取得
1で作成したアプリケーションをもう一度Manage Appの画面から見ると発行されたClient_idとClient_secretを確認することができます。こちらを使ってBearerTokenを取得します。
今回はJavaのHttpURLConnectionを使用して取得していきます。
URL:https://api.yelp.com/oauth2/token
リクエストメソッド:POST
パラメータ
Name | Path | Description |
---|---|---|
grant_type | String | Oath2.0のgrant_typeの中のclient_credentialsを使用 |
client_id | String | 先ほど取得したclient_id |
client_secret | String | 先ほど取得したclient_secret |
String BearerToken(){
HttpURLConnection con = null;
String url_str = "https://api.yelp.com/oauth2/token";
String client_id = "YOUR_CLIENT_ID";
String client_secret = "YOUR_CLIENT_SECRET";
try{
URL url = new URL(url_str);
con = (HttpURLConnetion)url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCashes(false);
con.setRequestMethod("POST");
String param = "grant_type=client_credentials"
+"&client_id="+client_id
+"&client_secret="+client_secret;
PrintWriter pr = new PrintWriter(con.getOutputStream());
pr.print(param);
pr.close();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String str = null;
String line;
while((line = br.readLine()) != null){
str += line;
}
return str;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
帰ってくる値strはJSON形式になっています。
{
"access_token": "your access token",
"token_type": "bearer",
"expires_in": 15552000
}
ここでの各返り値は下のようになっています。
Name | Path | Description |
---|---|---|
access_token | String | Yelp fusion APIに使用するBearerToken |
token_type | String | Tokenの種類 |
expire_in | int | 必ず15552000が返ってきます。 |
これでBearerTokenの取得が完了しました。
#3.BearerTokenの使用
ここまでで取得できたBearerTokenを実際に使用していきたいと思います。
同じくJavaのHttpURLConnectionを使用していきます。
ここでは例として
https://www.yelp.com/developers/documentation/v3/get_started
の例の1番上のものを真似ていきます。
Oath2.0に準じ、HttpヘッダにBearerTokenを添付してOath認証を行いAPIを使用していきます。
BearerTokenの認証にJavaではsetRequestPropertyのメソッドを用いてリクエストプロパティにTokenを書き込みます。
URL:https://api.yelp.com/oauth2/token
リクエストメソッド:GET
key | value |
---|---|
Authorization | Bearer "your_bearer_token" |
String test(){
HttpURLConnection con = null;
String url_str = "https://api.yelp.com/v3/autocomplete?text=del&latitude=37.786882&longitude=-122.399972";
String bearer_token = "YOUR_BEARER_TOKEN";
try{
URL url = new URL(url_str);
con = (HttpURLConnetion)url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCashes(false);
con.setRequestMethod("GET");
con.setRequestProperty("Authorization","Bearer " + bearer_token);
con.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String str = null;
String line;
while((line = br.readLine()) != null){
str += line;
}
return str;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
ここでの返り値strもJSON形式になっています。基本的に返り値はJSON形式です。
{
"terms": [
{
"text": "Delivery"
}
],
"businesses": [
{
"id": "YqvoyaNvtoC8N5dA8pD2JA",
"name": "Delfina"
},
{
"id": "vu6PlPyKptsT6oEq50qOzA",
"name": "Delarosa"
},
{
"id": "bai6umLcCNy9cXql0Js2RQ",
"name": "Pizzeria Delfina"
}
],
"categories": [
{
"alias": "delis",
"title": "Delis"
},
{
"alias": "fooddeliveryservices",
"title": "Food Delivery Services"
},
{
"alias": "couriers",
"title": "Couriers & Delivery Services"
}
]
}
上記のJSON形式の値が帰ってくれば成功です!
あとは同様に様々な種類のAPIを叩いて、活用してください。