実行結果' ; //「許可」して帰ってきた場合 if( isset( $_GET['code'] ) && !empty( $_GET['code'] ) && is_string( $_GET['code'] ) ) { // アクセストークンの取得に利用するコード $code = $_GET['code'] ; // リクエストURL $request_url = 'https://foursquare.com/oauth2/access_token?client_id=' . $consumer_key . '&client_secret=' . $consumer_secret . '&grant_type=authorization_code&redirect_uri=' . rawurlencode( $redirect_uri ) . '&code=' . $_GET['code'] ; // 受け取ったコードを元に、アクセストークンを取得する $curl = curl_init() ; curl_setopt( $curl , CURLOPT_URL , $request_url ) ; curl_setopt( $curl , CURLOPT_HEADER, 1 ) ; curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false ) ; // 証明書の検証を行わない curl_setopt( $curl , CURLOPT_RETURNTRANSFER , true ) ; // curl_execの結果を文字列で返す curl_setopt( $curl , CURLOPT_TIMEOUT , 5 ) ; // タイムアウトの秒数 $res1 = curl_exec( $curl ) ; $res2 = curl_getinfo( $curl ) ; curl_close( $curl ) ; // 取得したデータ $json = substr( $res1, $res2['header_size'] ) ; // 取得したデータ(JSONなど) $header = substr( $res1, 0, $res2['header_size'] ) ; // レスポンスヘッダー (検証に利用したい場合にどうぞ) // JSONをオブジェクト型に変換する $obj = json_decode( $json ) ; // アクセストークンを取得できなかった場合 if( !isset( $obj->access_token ) ) { $error = 'アクセストークンを上手く取得することができませんでした…。' ; } else { // アクセストークンを[$access_token]に代入する $access_token = $obj->access_token ; // アクセストークンをブラウザに出力する $html .= '

取得したアクセストークンは、' . $access_token . 'です。

' ; } } // 「拒否」して帰ってきた場合 elseif( isset( $_GET['error'] ) ) { // 「許可」してくれなかったことに文句を言う $error = 'なんで「許可」してくれなかったんですか!?' ; } // ユーザーを認証画面に移動させる else { header( 'Location: https://foursquare.com/oauth2/authenticate?client_id=' . $consumer_key . '&response_type=code&redirect_uri=' . rawurlencode( $redirect_uri ) ) ; exit ; } // エラー判定 if( isset( $error ) && !empty( $error ) ) { $html .= '

' . $error . 'もう一度、認証をするには、こちらをクリックして下さい。

' ; } else { // 取得したデータ $html .= '

取得したデータ

' ; $html .= '

下記のデータを取得できました。

' ; $html .= '

JSON

' ; $html .= '

' ; $html .= '

レスポンスヘッダー

' ; $html .= '

' ; // アプリケーション連携の解除 $html .= '

アプリケーション連携の解除

' ; $html .= '

このアプリケーションとの連携は、下記設定ページで解除することができます。

' ; $html .= '

https://ja.foursquare.com/settings/connections

' ; } ?> Foursquare APIでOAuth2.0認証をするサンプルデモ

配布元: Syncer