Google+ APIを使ってみた(PHP編)
- December 16th, 2011
前回書いた「Google+ APIを使ってみた(下準備編)」の続きとして、今回はPHP編集編をメモ。
- Google+ APIを使ってみた(下準備編)
- Google+ APIを使ってみた(PHP編)
- Google+ APIを使ってみた(JavaScript編)
Google+に登録した共有記事を取得するには、特定のURLを打ち込めば「JSON形式」で返してくれるので、別にPHPを使わなくてもいいんだけど、項目数が多いので必要最低限の情報を取得して加工する事に。
Google+ APIの共有記事を取得するURL
リクエストしたデータに”nextPageToken”という値があるので、その値を”pageToken”に指定する事ができます。
<?php // URLのパラメータ $user_id = 'XXXXXXXXXXXXXXXXXXXXX'; // [必須] Google+のID(Google+のURLにある10桁以上の数値) $max_result = 10; // 読込記事の数(初期値20、1~100まで指定可能) $page_token = ''; // 読込記事の位置(指定しなかった場合は、最新記事から取得する) $api_key = 'XXXXXXXXXXXXXXXXXXXXX'; // [必須] Google API key(Google apisで取得する) $url = 'https://www.googleapis.com/plus/v1/people/'. $user_id. '/activities/public' . '?maxResults='. $max_result . '&pageToken='. $page_token . '&key='. $api_key; ?>
データの取得と加工
値をそのまま利用すると、オブジェクトとして認識される場合があるので、型キャストを行って文字列に変換しています。
<?php // データ取得 $data = file_get_contents($url); $data = json_decode($data); // オブジェクトに変換(PHP5.2以上で利用可) // データ加工 $result = array('nextpage'=>'', 'items'=>array()); if (count($data->items)) { $result['nextpage'] = $data->nextPageToken; // 前の記事を読み込む時に使用する foreach ($data->items as $key => $value) { $result['items'][] = array( 'url' => (string) $value->url, // Google+個別記事のURL 'actor_name' => (string) $value->actor->displayName, // Google+登録者名 'actor_url' => (string) $value->actor->url, // // Google+登録者URL 'actor_img' => (string) $value->actor->image->url, // Google+登録者画像URL 'item_url' => (string) $value->object->url, // Google+個別記事のURL(urlと同じ?) 'item_title' => (string) $value->object->attachments[0]->displayName, // 記事タイトル 'item_content' => (string) $value->object->attachments[0]->content, // 記事内容 'item_link' => (string) $value->object->attachments[0]->url, // 元記事URL 'item_img' => (string) $value->object->attachments[0]->fullImage->url, // 記事画像URL 'item_img2' => (string) $value->object->attachments[0]->image->url, // 記事画像(小)URL 'datetime' => date("Y-m-d H:i:s", strtotime($value->published)), // 登録日 ); } } ?>
JSONデータとして出力
PHPでJSONデータを扱う場合は、PHPのバージョンを5.2以上にしておくと「json_encode」と「json_decode」が使えるので便利です。
PHP5.1以下の場合は、PEARの「Services_JSON」を利用してください。
<?php // JSONのHTTPヘッダを指定して出力 header("Content-Type: text/javascript; charset=utf-8"); echo json_encode($result); exit(); ?>
- December 16th, 2011