<?php // 設定項目 $request_url = 'https://api.moves-app.com/api/1.1/activities' ; // リクエストURL // JSONデータを取得する $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'] ) ; // レスポンスヘッダー (検証に利用したい場合にどうぞ) // オブジェクトに変換する $obj = json_decode( $json ) ; // HTML用 $html = '' ; // エラー判定 if( !$obj ) { $html .= '<p>データを取得できませんでした…。</p>' ; } else { // HTML $html .= '<h2>実行結果</h2>' ; $html .= '<p>下記の内容で取得しました。</p>' ; foreach( $obj as $item ) { // 各データの整理 $activity = $item->activity ; // 運動項目 $geo = ( $item->geo ) ? 'true' : 'false' ; // 位置が関係するか $place = ( $item->place ) ? 'true' : 'false' ; // 場所が関係するか $color = $item->color ; // 色 $units = $item->units ; // 含む項目 // 出力 $html .= '<dl>' ; $html .= '<dt>項目</dt>' ; $html .= '<dd>' . $activity . '</dd>' ; // グループ if( isset( $item->group ) && !empty( $item->group ) ) { $html .= '<dt>グループ</dt>' ; $html .= '<dd>' . $item->group . '</dd>' ; } $html .= '<dt>位置情報</dt>' ; $html .= '<dd>' . $geo . '</dd>' ; $html .= '<dt>場所情報</dt>' ; $html .= '<dd>' . $place . '</dd>' ; $html .= '<dt>色</dt>' ; $html .= '<dd>' . $color . '</dd>' ; $html .= '<dd><div style="min-height:1em;background:#' . $color . '"></div></dd>' ; $html .= '<dt>データ</dt>' ; $html .= '<dd>' . $units . '</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>' ; ?><!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>Moves APIで運動項目一覧を取得するサンプルデモ</title><!-- /******************************************************************************** SYNCER 〜 知識、感動をみんなと同期(Sync)するブログ * 配布場所 https://syncer.jp/moves-api-matome * 動作確認 https://syncer.jp/moves-api-matome/demo/activity-list.php * 最終更新日時 2015/08/03 03:56 * 作者 あらゆ ** 連絡先 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/moves-api-matome">配布元: Syncer</a></p> </body> </html>