ラック
Home > ブログ > 記事 > 2017年12月 > Foursquare APIのテスト(チェックイン作成に成功)

Foursquare APIのテスト(チェックイン作成に成功)

カテゴリ: ホームページ,プログラム,Webサービス

前の記事(Foursquare APIのテスト(チェックイン作成は403で失敗)|Ewig Leere(Lab))で認証に失敗して頓挫したのですが、その翌日改めて調査と検証を行った結果、今度は成功しました。

メインの情報源はFoursquare(Swarm) APIの使い方まとめ (サンプルコード付き)のサンプルコード。

てっきりFoursquare Developerで作成したアプリのclient_idclient_secretを使って認証するものだと思っていましたが、違いました。

さらに、よくよくCreate a Check-in - Foursquare Developerを見てみると

Authentication

User authentication.

とあるので、上述のアプリケーション認証ではなく、ユーザー認証が必要であると分かりました。

以上を踏まえて、サンプルコードを元に

  1. 認証ページ
    • 実質https://foursquare.com/oauth2/authenticateへのリダイレクト
      • GETパラメータとして
        • client_id
        • response_type: code
        • redirect_uri: 認証完了後に飛ばすリダイレクト先のページ
          • ここで記述するリダイレクト先はFoursquare Developerのアプリの中のリダイレクト先で指定していること。プログラムの記述と設定を合わせる
            Foursquare開発者ページのアプリでリダイレクトURIを指定する
      • を渡す
        • 認証に成功するとcode、ユーザー認証用のトークン文字列が返ってくる
  2. APIに動作を指示するページ
    • 今回はCheckInをする(https://api.foursquare.com/v2/checkins/addに投げる)
      • 上述のcodeがセットされていなければ、認証に失敗したか、アプリ連携の許可を拒否したものと考えられるためエラーメッセージを出力して処理は終了
      • codeがセットされていれば、それを認証用のトークン(oauth_token)としてAPIに渡すパラメータにセットする
      • CheckInの場合、codeの他に必要なパラメータは
        • venueId: ベニュー(場所、スポット)のID
        • locale: 言語。日本語なのでja
        • m: モード。swarmかFoursquareか。今回はswarm
        • v: バージョン。APIのバージョンなので、使い始めるタイミングのバージョンをyyyymmddで指定する。
      • 渡す方法はPOSTGETではないので注意。
      • formにonsubmit="function();return false;"を指定して、POSTしたらfunctionの中でリダイレクトする、という方法でPOSTしつつチェックイン完了ページに遷移させる
  3. チェックイン完了ページ
    • 2.の処理が無事に完了したら、リダイレクトして「チェックイン成功」のページを表示する

という流れで作成。これで実装することができました。

参考

タグ: その他,php

 



関連する記事一覧