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
