おはやし日記

テーマ……バイク←プログラミング←旅

swarmAPI設定の備忘録

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(パスワード)ができる。

f:id:o-treetree:20190830190849p:plain
CLIENT IDとCLIENT 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 Developer

  • ll
    緯度(東経)と経度(北緯)。空白を開けてはいけない。ちなみに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

  1. リダイレクトURL(REDIRECT_URL)の設定
    App Settingのページhttps://foursquare.com/developers/apps/CLIENT_ID/settingsのWEB ADDRESSES欄,REDIRECT URLになんか設定する。知識不足なので適当にこれもブログトップ(https://o-treetree.hatenablog.com)にした。

  2. ブラウザでhttps://foursquare.com/oauth2/authenticate?client_id=CLIENT_ID&response_type=code&redirect_uri=REDIRECT_URLを開く

    f:id:o-treetree:20190830201722p:plain
    認証画面
    自分で設定したアプリ名ohatestが書かれている。

  3. 認証するとREDIRECT_URL?code=CODEに遷移する。見た目は(僕の場合ブログトップに設定したので,見た目はブログページ。ブラウザのURL欄を見る。)

  4. アクセストークンをゲットする(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"} が表示される。

    f:id:o-treetree:20190830202333p:plain
    アクセストークン取得
    cURLでもいいのかは,大丈夫だろうがわからない。試していないので。

  5. これを使って例えば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の取得ができたのでまとめました。

o-treetree.hatenablog.com

参考

トップに戻る

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

ブログランキング・にほんブログ村へにほんブログ村

プライバシーポリシー ・お問い合わせはこちら