swarmAPI(Foursquare API)を使って遊ぼうと思って,swarmアカウントの作成,開発用アカウントの作成,アプリケーションのAuthentication(認証)に成功したので,手順とかをまとめておく。利用方法は主にcURLでのHTTPリクエスト。とりあえずAPIを利用できるようにするだけ。細かい使い方についてはあまり書いていない。
swarmアカウントの作成
ここは細かい手順は書くほどでも無い。よくあるアカウント作成。
パソコンからはようわからん。自分はswarmアプリから作った。あるいはfoursquareのログインページから登録できる。
開発用アカウントの作成
Foursquare Developerから右上のCreate Accountでアカウント作成。これも難しくは無い。
作れるアプリケーションは,無料プランでは開発アカウント毎に1つのみ。まあ自分で遊ぶだけならこれで足りる。
アプリケーションの作成
Getting Started - Foursquare Developerに従ってアプリケーションの作成。
- App Name適当な名前。自分は
ohatest
にした。 - App URL自分はブログトップにした。何が正しいのかはわからんけどこれで使えている。
プランは無料。
そうするとアプリケーションのページができる。以下のようにIDとSECRET(パスワード)ができる。
基本的にこれを使ってアクセスする。
APIの使い方
とりあえず使ってみる
Getting Started - Foursquare Developerの「4 Make a Request」にある例
curl -X GET -G \ 'https://api.foursquare.com/v2/venues/explore' \ -d client_id="CLIENT_ID" \ -d client_secret="CLIENT_SECRET" \ -d v="20180323" \ -d ll="40.7243,-74.0018" \ -d query="coffee" \ -d limit=1
CLIENT_IDとCLIENT_SECRETは自分のやつに書き換える
これは以下と同値
curl -X GET "https://api.foursquare.com/v2/venues/explore?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&v=20180323&ll=40.7243,-74.0018&query=coffee&limit=1"
クォーテーション「"」の使い方に注意。
ユーザー認証なし
近くのVenueを探す
詳しくはGet Venue Recommendations - Foursquare Developer
リクエスト
curl -X GET "https://api.foursquare.com/v2/venues/explore?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&v=20180323&ll=35.679950,139.758687&limit=3&sortByDistance=1"
変数
v
APIのいつのバージョンを使うかという数値。YYYYMMDD
で表す。なんか書いとけ。参照:Versioning - Foursquare Developerll
緯度(東経)と経度(北緯)。空白を開けてはいけない。ちなみに35.679950,139.758687
は皇居の辺り。limit
いくつvenue情報を取得するか。最高で50。sortByDistance
1
にすると,ll
の現在地に近いものから表示。0
にするとFoursquareがオススメ順にアレンジするっぽい。
レスポンス
整形済み
object['response']['groups'][0]['items']
の中にlimit
個のデータが入っている。
例えば,object['response']['groups'][0]['items'][0]['venue']['name']
はKokyo Gaien (皇居外苑)
となっている。
変数(object['response']['groups'][0]['items'][N]
に続けて)
['venue']['id']
venueのID。各venueの特定に使う['venue']['name']
venueの名前。['location']['crossStreet']
venueが建物の中にあるとき,これが含まれる。(上のレスポンスについてobject['response']['groups'][0]['items'][2]['venue']['location']['crossStreet']
は丸の内 MY PLAZA 明治生命館 B1F
)
ユーザー認証あり
ユーザー認証の方法
詳しくはAuthentication - Foursquare Developer
リダイレクトURL(
REDIRECT_URL
)の設定App Settingのページhttps://foursquare.com/developers/apps/CLIENT_ID/settings
のWEB ADDRESSES欄,REDIRECT URLになんか設定する。知識不足なので適当にこれもブログトップ(https://o-treetree.hatenablog.com
)にした。ブラウザで
https://foursquare.com/oauth2/authenticate?client_id=CLIENT_ID&response_type=code&redirect_uri=REDIRECT_URL
を開く 自分で設定したアプリ名ohatest
が書かれている。認証すると
REDIRECT_URL?code=CODE
に遷移する。見た目は(僕の場合ブログトップに設定したので,見た目はブログページ。ブラウザのURL欄を見る。)アクセストークンをゲットする(CODEもらってすぐにやらないとダメっぽい?) ブラウザで
https://foursquare.com/oauth2/access_token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=authorization_code&redirect_uri=REDIRECT_URL&code=CODE
を打つと{"access_token":"ACCESS_TOKEN"}
が表示される。 cURLでもいいのかは,大丈夫だろうがわからない。試していないので。これを使って例えば
curl -X GET "https://api.foursquare.com/v2/users/self/checkins?oauth_token=ACCESS_TOKEN&v=20180323"
とすると,これは自分のチェックインを取り出す。
認証なしの時client_id=CLIENT_ID&client_secret=CLIENT_SECRET
だったところをoauth_token=ACCESS_TOKEN
にマルッと置き換える。
venueIdの使い所
参考:Attribution - Foursquare Developer
レスポンスのobject['response']['groups'][0]['items'][N]['venue']['id']
に書かれているID。
http://foursquare.com/v/venueId
でvenueのページを開ける。
おわりに
なんとか認証までできてよかった。チェックインとかもやってみたい。ただ色々探っている状況。取得できるvenueのリストが,アプリで取得するのとなんか違う気がする。細かいスポットが含まれていない。まあ遊ぶ分には十分だけど。
↑チェックインもどき
これを利用してAutomateでのvenue取得も成功しているので後々まとめたい。
追記
検索,チェックイン,シェアURLの取得ができたのでまとめました。
参考
Foursquare - 信頼できる位置情報およびロケーション・インテリジェンスを提供する企業Foursquareのページ
JSON Pretty Linter - JSONの整形と構文チェックJSONを整形してくれる。各データへのパスも教えてくれる。
クリックすると展開表示する"折りたたみメニュー"を簡単に作る方法 | ふかふか交易所本筋とは離れるが,記事内で使った折り畳みのやり方