<?php // 認証キー (必要) $auth_key = '' ; // 動画IDを指定 $post_id = '1049109950888337408' ; // GETメソッドで指定がある場合 foreach( array( 'post_id' ) as $val ) { if( isset( $_GET[ $val ] ) && $_GET[ $val ] != '' ) { ${ $val } = $_GET[ $val ] ; } } // リクエストURL $request_url = 'https://api.vineapp.com/posts/' . $post_id . '/reposts' ; // BASIC認証のリクエスト $curl = curl_init() ; curl_setopt( $curl , CURLOPT_URL , $request_url ) ; curl_setopt( $curl , CURLOPT_HEADER, 1 ) ; if( $auth_key ) { curl_setopt( $curl , CURLOPT_HTTPHEADER , array( 'vine-session-id: ' . $auth_key . "\r\n" ) ) ; } 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>動画IDを指定する</h2>' ; $html .= '<p>動画IDを指定して、Revineをしたユーザーを取得してみて下さい。</p>' ; $html .= '<form>' ; $html .= '<p><input name="post_id" value="' . $post_id . '"></p>' ; $html .= '<p><button>検索する</button></p>' ; $html .= '</form>' ; // 実行結果の出力 $html .= '<h2>実行結果</h2>' ; // エラー判定 if( !$obj || !isset($obj->data->records) || empty($obj->data->records) ) { $html .= '<p>データを取得できませんでした…。設定を再確認して下さい。</p>' ; } else { // 説明 $html .= '<p>動画ID:<code><b>' . $post_id . '</b></code>をRevineしたユーザーを取得しました。</p>' ; // 解析 foreach( $obj->data->records as $item ) { // 各データの整理 $userId = (string)$item->userId ; // ユーザーID (文字列にキャストしないと末尾の数値が丸まる…) $username = $item->username ; // ユーザー名 $created = $item->created ; // 投稿日時 $repostId = (string)$item->repostId ; // RevineのID (文字列にキャストしないと末尾の数値が丸まる…) // 日時の整形 $created = date( 'Y/m/d H:i' , strtotime( $created ) ) ; // ブラウザに出力 $html .= '<dl>' ; $html .= '<dt>ユーザーID</dt>' ; $html .= '<dd><a href="https://vine.co/u/' . $userId . '" target="_blank">' . $userId . '</a></dd>' ; $html .= '<dt>ユーザー名</dt>' ; $html .= '<dd>' . $username . '</dd>' ; $html .= '<dt>投稿日時</dt>' ; $html .= '<dd>' . $created . '</dd>' ; $html .= '<dt>RevineのID</dt>' ; $html .= '<dd>' . $repostId . '</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>Vine APIでRevineしたユーザーを取得するサンプルデモ</title><!-- /******************************************************************************** SYNCER 〜 知識、感動をみんなと同期(Sync)するブログ * 配布場所 https://syncer.jp/vine-api-matome * 動作確認 https://syncer.jp/vine-api-matome/demo/get-revine.php * 最終更新日時 2015/08/03 14:32 * 作者 あらゆ ** 連絡先 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/vine-api-matome">配布元: Syncer</a></p> </body> </html>