Posted by : Izumikawa Fukumi 2014年1月13日月曜日

今回Google+のAPIを使って自分で投稿した共有をPHPで取得する方法をご紹介します。

以前投稿した「Google+APIを使ってみた。」を読んだ前提として話を進めて行きます。






対象

  1. Google+APIを使ってみたい方
  2. 暇を持て余している方
  3. PHPで大抵の事が出来る方
  4. HTMLを普通に使える方
  5. 幼女好きの方



共有を取得する

今回はちょっと以前の投稿のと違います。
https://www.googleapis.com/plus/v1/people/me/activities/public?key=キー

このURLで一応共有を[0]から[19]までいっきに取得出来ます。

今回は以下の項目を取得して表示します。

  1. 投稿者名
  2. 更新日
  3. 投稿者アイコン画像URL
  4. 共有のURL
  5. 共有記事
  6. コメント者の画像・名前
  7. コメントテキスト

以上です。

一応以下に配列へのアクセスを書きます。

投稿者画像[$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 '
'; print '2.png(4077 byte)'; print '
'; print '
'; print '
' . $obj['items'][$post]['updated'] . '
'; print '
'; print '
' . $obj['items'][$post]['object']['content'] . '
'; $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 '
'; for($i=0; $i < $comment_int; $i++){ print '1.png(4722 byte)'; print '
'; print '
' . $obj_comment['items'][$i]['actor']['displayName'] . '
'; print '
' . $obj_comment['items'][$i]['object']['content'] . '
'; print '
'; } print '
'; } 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; }


- Copyright © I aim to creator. - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -