<?php // アクセストークン $access_token = '' ; // 設定項目 $params = array( 'oauth_token' => $access_token , // アクセストークン 'locale' => 'ja' , // ローカライズ 'm' => 'swarm' , // モード (foursquare OR swarm) 'v' => '20150801' , // バージョン 'limit' => '50' , // 取得件数 // 'sort' => 'oldestfirst' , // ソート ) ; // GETメソッドで指定がある場合 foreach( array( 'locale' , 'm' , 'limit' , 'sort' , 'afterTimestamp' , 'beforeTimestamp' ) as $val ) { if( isset( $_GET[ $val ] ) && $_GET[ $val ] != '' ) { $params[ $val ] = $_GET[ $val ] ; } } // リクエストURL $request_url = 'https://api.foursquare.com/v2/users/self/checkins' . '?' . http_build_query( $params ) ; // cURLでリクエスト $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_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'] ) ; // レスポンスヘッダー (検証に利用したい場合にどうぞ) // HTML用 $html = '' ; // JSONデータをオブジェクト形式に変換する $obj = json_decode( $json ) ; // 実行結果の出力 $html .= '<h2>実行結果</h2>' ; // エラー判定 if( !$obj || !isset($obj->meta->code) || $obj->meta->code != 200 ) { $html .= '<p>データを取得できませんでした…。設定を再確認して下さい。</p>' ; } else { // 説明 $html .= '<p>チェックイン総数は<b>' . $obj->response->checkins->count . '</b>件です。</p>' ; foreach( $obj->response->checkins->items as $item ) { // 各データの整理 $id = $item->id ; // チェックインID $venue_id = $item->venue->id ; // ベニューのID $venue_name = $item->venue->name ; // ベニューの名前 $createdAt = $item->createdAt + $item->timeZoneOffset ; // チェックイン日時(オフセットと合わせる) $source_name = $item->source->name ; // チェックインしたサービス $shout = ( isset($item->shout) ) ? $item->shout : '' ; // コメント // 日時の整形 $createdAt = date( 'Y/m/d H:i' , $createdAt ) ; // ブラウザに出力 $html .= '<dl>' ; $html .= '<dt>チェックインID</dt>' ; $html .= '<dd>' . $id . '</dd>' ; $html .= '<dt>ベニュー名</dt>' ; $html .= '<dd>' . $venue_name . '</dd>' ; $html .= '<dt>ベニューID</dt>' ; $html .= '<dd><a href="https://ja.foursquare.com/v/' . $venue_id . '" target="_blank">' . $venue_id . '</a></dd>' ; // コメント if( $shout ) { $html .= '<dt>コメント</dt>' ; $html .= '<dd>' . $shout . '</dd>' ; } $html .= '<dt>投稿日時</dt>' ; $html .= '<dd>' . $createdAt . '</dd>' ; $html .= '<dt>ソース</dt>' ; $html .= '<dd>' . $source_name . '</dd>' ; $html .= '</dl>' ; } } // 取得したデータ $html .= '<h2>取得したデータ</h2>' ; $html .= '<p>下記のデータを取得できました。</p>' ; $html .= '<h3>JSON</h3>' ; $html .= '<p><textarea rows="8">' . $json . '</textarea></p>' ; $html .= '<h3>レスポンスヘッダー</h3>' ; $html .= '<p><textarea rows="8">' . $header . '</textarea></p>' ; // アプリケーション連携の解除 $html .= '<h2>アプリケーション連携の解除</h2>' ; $html .= '<p>このアプリケーションとの連携は、下記設定ページで解除することができます。</p>' ; $html .= '<p><a href="https://ja.foursquare.com/settings/connections" target="_blank">https://ja.foursquare.com/settings/connections</a></p>' ; ?><!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="robots" content="noindex,nofollow"> <!-- ビューポートの設定 --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Foursquare APIでユーザーのチェックイン履歴を取得するサンプルデモ</title><!-- /******************************************************************************** SYNCER 〜 知識、感動をみんなと同期(Sync)するブログ * 配布場所 https://syncer.jp/foursquare-api-matome * 動作確認 https://syncer.jp/foursquare-api-matome/demo/get-checkin.php * 最終更新日時 2015/08/02 12:30 * 作者 あらゆ ** 連絡先 Twitter: https://twitter.com/arayutw Facebook: https://www.facebook.com/arayutw Google+: https://plus.google.com/114918692417332410369/ E-mail: info@syncer.jp ※ バグ、不具合の報告、提案、ご要望など、お待ちしております。 ※ 申し訳ありませんが、ご利用者様、個々の環境における問題はサポートしていません。 ********************************************************************************/ --> </head> <body> <?php echo $html ?> <p style="text-align:center"><a href="https://syncer.jp/foursquare-api-matome">配布元: Syncer</a></p> </body> </html>