<?php // 取得するベニューID $venue_id = '4b5bb91cf964a520451229e3' ; // アクセストークン $access_token = '' ; // 設定項目 $params = array( 'oauth_token' => $access_token , // アクセストークン 'locale' => 'ja' , // ローカライズ 'm' => 'swarm' , // モード (foursquare OR swarm) 'v' => '20150801' , // バージョン ) ; // リクエストURL $request_url = 'https://api.foursquare.com/v2/venues/' . $venue_id . '?' . 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>下記がベニューに関する情報です。</p>' ; // エイリアス $item = $obj->response->venue ; // 各データの整理 $id = $item->id ; // ベニューのID $name = $item->name ; // ベニューの名前 $canonicalUrl = $item->canonicalUrl ; // ベニューのパーマリンク $categories_id = $item->categories[0]->id ; // カテゴリID (最初の1個だけ…) $categories_name = $item->categories[0]->name ; // カテゴリ名 (最初の1個だけ…) $lat = $item->location->lat ; // 緯度 $lng = $item->location->lng ; // 経度 $formattedAddress = ( isset($item->location->formattedAddress) && !empty($item->location->formattedAddress) ) ? implode( ' ' , $item->location->formattedAddress ) : '' ; // 住所 $stats_checkinsCount = ( isset($item->stats->checkinsCount) ) ? $item->stats->checkinsCount : 0 ; // チェックイン数 $stats_usersCount = ( isset($item->stats->usersCount) ) ? $item->stats->usersCount : 0 ; // 訪問ユーザー数 // ブラウザに出力 $html .= '<dl>' ; $html .= '<dt>ベニューID</dt>' ; $html .= '<dd>' . $id . '</dd>' ; $html .= '<dt>ベニュー名</dt>' ; $html .= '<dd>' . $name . '</dd>' ; // 住所 if( $formattedAddress ) { $html .= '<dt>住所</dt>' ; $html .= '<dd>' . $formattedAddress . '</dd>' ; } $html .= '<dt>パーマリンク</dt>' ; $html .= '<dd><a href="' . $canonicalUrl . '" target="_blank">' . $canonicalUrl . '</a></dd>' ; $html .= '<dt>カテゴリID</dt>' ; $html .= '<dd>' . $categories_id . '</dd>' ; $html .= '<dt>カテゴリ名</dt>' ; $html .= '<dd><a href="https://ja.foursquare.com/explore?q=' . $categories_name . '" target="_blank">' . $categories_name . '</a></dd>' ; $html .= '<dt>地図</dt>' ; $html .= '<dd><a href="https://www.google.co.jp/maps/@' . $lat . ',' . $lng . ',15z" target="_blank">Google Mapsで位置を確認する</a></dd>' ; $html .= '<dt>チェックイン数</dt>' ; $html .= '<dd>' . number_format( $stats_checkinsCount ) . '</dd>' ; $html .= '<dt>訪問ユーザー数</dt>' ; $html .= '<dd>' . number_format( $stats_usersCount ) . '</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-venue.php * 最終更新日時 2015/08/02 13:26 * 作者 あらゆ ** 連絡先 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>