'all' , // 未読の記事のみ ) ; // パラメーターにコンシューマーキーとアクセストークンを追加 $params = array_merge( $params , array( 'consumer_key' => $consumer_key , 'access_token' => $access_token , ) ) ; // コンテキスト $context = array( 'http' => array( 'method' => $request_method , 'content' => http_build_query( $params ) , ) ) ; // アイテムデータをJSON形式で取得する (CURLを使用) $curl = curl_init() ; // オプションのセット curl_setopt( $curl , CURLOPT_URL , $request_url ) ; curl_setopt( $curl , CURLOPT_HEADER, 1 ) ; curl_setopt( $curl , CURLOPT_CUSTOMREQUEST , $context['http']['method'] ) ; // メソッド curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false ) ; // 証明書の検証を行わない curl_setopt( $curl , CURLOPT_RETURNTRANSFER , true ) ; // curl_execの結果を文字列で返す curl_setopt( $curl , CURLOPT_POSTFIELDS , $context['http']['content'] ) ; // リクエストボディ 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データをオブジェクトではなく、連想配列形式に変換する $array = json_decode( $json , true ) ; // エラー判定 if( !isset($array['list']) ) { $html .= '

データを取得できませんでした…。設定を再確認して下さい。

' ; } // アイテム個数が15件以下の場合はエラー elseif( 15 > $array['list'] ) { $html .= "もっとpocketしてから来て下さい!!"; } else { // アイテムリストの配列を変数に格納 $item_list = $array['list'] ; // アイテム数を調べる $item_count = count( $item_list ) ; // アイテム配列の中から、ランダムで10個のキーを取得 $random_list = array_rand( $item_list ,10 ) ; // HTMLを作成 $html .= '

実行結果

' ; $html .= '

登録しているアイテムの中からランダムで10個のアイテムをピックアップしました。もう一度試すには、こちらをクリックして下さい。

' ; // 選ばれたキーのアイテムを出力する foreach( $random_list as $key ) { // データが揃ってなければパス if( !isset($item_list[ $key ]['item_id']) || !isset($item_list[ $key ]['resolved_title']) || !isset($item_list[ $key ]['resolved_url']) || !isset($item_list[ $key ]['favorite']) || !isset($item_list[ $key ]['time_added']) ) { continue ; } // 各データの整理 $id = $item_list[ $key ]['item_id'] ; // アイテムのID $title = $item_list[ $key ]['resolved_title'] ; // アイテムのタイトル $url = $item_list[ $key ]['resolved_url'] ; // アイテムのURL $fav = ( $item_list[ $key ]['favorite']== 1 ) ? '★ ' : '' ; // お気に入りにしているか? $date = $item_list[ $key ]['time_added'] ; // pocketした日付 // 日付を整形 $date = date( 'Y/m/d H:i' , $date ) ; // ブラウザに出力 $html .= '
' ; $html .= '
アイテムID
' ; $html .= '
' . $id . '
' ; $html .= '
タイトル
' ; $html .= '
' . $fav . $title . '
' ; $html .= '
URLアドレス
' ; $html .= '
' . $url . '
' ; $html .= '
登録した日付
' ; $html .= '
' . $date . '
' ; // 画像 if( isset( $item_list[ $key ]['image']['src'] ) && !empty( $item_list[ $key ]['image']['src'] ) ) { $html .= '
イメージ
' ; $html .= '
' ; } $html .= '
' ; } } // 取得したデータ $html .= '

取得したデータ

' ; $html .= '

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

' ; $html .= '

JSON

' ; $html .= '

' ; $html .= '

レスポンスヘッダー

' ; $html .= '

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

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

' ; $html .= '

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

' ; $html .= '

https://getpocket.com/connected_applications

' ; ?> pocket APIでアイテムをランダムに取得するサンプルデモ

配布元: Syncer