Posted by : Izumikawa Fukumi
2014年1月13日月曜日
今回Google+のAPIを使って自分で投稿した共有をPHPで取得する方法をご紹介します。
以前投稿した「Google+APIを使ってみた。」を読んだ前提として話を進めて行きます。
[items][#][object][replies]のtotalItemsはコメント数で、selfLinkはコメントのデータです。
これは今回使いましたが、[items][#][object]plusonersは恐らく+1したカウントとした人のアイコン画像です。これも結構使える物かと思います。
コピー&ペーストして使いたい方は、このソースを[<div id="google_widget">]で挟んで以下のCSSもコピー&ペーストして頂いた方がいいです。
以前投稿した「Google+APIを使ってみた。」を読んだ前提として話を進めて行きます。
対象
- Google+APIを使ってみたい方
- 暇を持て余している方
- PHPで大抵の事が出来る方
- HTMLを普通に使える方
- 幼女好きの方
共有を取得する
今回はちょっと以前の投稿のと違います。
https://www.googleapis.com/plus/v1/people/me/activities/public?key=キー
このURLで一応共有を[0]から[19]までいっきに取得出来ます。
今回は以下の項目を取得して表示します。
- 投稿者名
- 更新日
- 投稿者アイコン画像URL
- 共有のURL
- 共有記事
- コメント者の画像・名前
- コメントテキスト
以上です。
一応以下に配列へのアクセスを書きます。
投稿者画像[$obj['items'][$post]['actor']['image']['url']]
共有URL[$obj['items'][$post]['url']]
投稿時日[$obj['items'][$post]['updated']]
投稿者名[$obj['items'][$post]['actor']['displayName']]
共有記事[$obj['items'][$post]['object']['content']]
コメント者画像[$obj_comment['items'][$i]['actor']['image']['url']]
コメント者名前[$obj_comment['items'][$i]['actor']['displayName']]
コメントテキスト[$obj_comment['items'][$i]['object']['content']]
共有はfor文でループさせて情報を取り出しています。
for($post=0; $post < 19; $post++){
コメントも同様ループさせて情報を取得しています。
for($i=0; $i < $comment_int; $i++){
今回使っていないけど使えそうな値
情報を取得すると、nextPageTokenの配列がありますが、これは[0]から[19]までしか表示されませんが、それ以降の投稿を取得する為の[キー]です。
https://www.googleapis.com/plus/v1/people/me/activities/public?pageToken=CKaEL&key=キー
CkaELの部分にnextPageTokenの値を入れればいいわけです。
次に、
次に、
[items][#][object][replies]のtotalItemsはコメント数で、selfLinkはコメントのデータです。
これは今回使いましたが、[items][#][object]plusonersは恐らく+1したカウントとした人のアイコン画像です。これも結構使える物かと思います。
実際に取得するソースを書いてみた。
なんだか説明しずらいのでソースをみて理解して頂ければと思います。
$json = file_get_contents("https://www.googleapis.com/plus/v1/people/+福巳泉川ふっくん/activities/public?key=キー"); $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); $obj = json_decode($json, true); for($post=0; $post < 19; $post++){ print ''; print '
'; print ''; $comment_int = $obj['items'][$post]['object']['replies']['totalItems']; $comment_url = $obj['items'][$post]['object']['replies']['selfLink']; $data_fopen = file_get_contents($comment_url . '?key=AIzaSyCiQ3s4QvXcqHccwkw8rsXxDUNSYuZNmKc'); $json_comment = mb_convert_encoding($data_fopen, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); $obj_comment = json_decode($json_comment, true); if($comment_int > 0){ print '
'; print ''; print ''; print '
'; print ''; print '
'; print '
' . $obj['items'][$post]['updated'] . '
' . $obj['items'][$post]['object']['content'] . '
'; print ''; }'; for($i=0; $i < $comment_int; $i++){ print ''; print ''; } print ''; print ''; } print '' . $obj_comment['items'][$i]['actor']['displayName'] . ''; print '' . $obj_comment['items'][$i]['object']['content'] . ''; print '
コピー&ペーストして使いたい方は、このソースを[<div id="google_widget">]で挟んで以下のCSSもコピー&ペーストして頂いた方がいいです。
body{ font-family: "メイリオ", Meiryo, "MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro"; font-size: 75%; color: #000000; margin: 0px; padding: 0px; } h1,h2,h3,h4,h5,p,ul,ol,li,dl,dt,dd,form{ margin: 0px; padding: 0px; } ul{ list-style-type: none; } .post_container{ margin-bottom: 25px; } #google_widget{ padding: 5px; width: 500px; background-color: #FFFFFF; } .widget_box{ padding: 5px 5px 10px; border-width: 1px; border-color: #F0F0F0; border-style: solid; } .name, .time{ color: #999999; } .profile_icon{ margin-right: 5px; float: left; height: 46px; width: 46px; } .data{ padding-top: 5px; } .float{ clear: right; } .stream_text{ padding-bottom: 10px; } .stream_comment{ padding: 5px; background-color: #F8F8F8; } .use_icon{ margin-right: 10px; float: left; height: 28px; width: 28ox; } .user_name{ font-weight: bold; line-height: 28px; height: 28px; } .name a{ color: #4B4B4B; text-decoration: none; } .name a:hover{ text-decoration: underline; }