Google+ APIを使ってみた(PHP編)

December 16th, 2011

前回書いた「Google+ APIを使ってみた(下準備編)」の続きとして、今回はPHP編集編をメモ。


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