WordPress+SimplePieでGoogle Buzzを表示する

WordPress+SimplePieでGoogle Buzzを表示する
Google から twitter ライク(パクリ言わないの)なサービス Google Buzz が利用できるようになりました。「ステータス メッセージの枠を超える機能」とか言うてますが Gmail とゴッチャだし twitter と比較すると諸々わかり難いのがアレですね。シンプルの方向性は twitter を見習った方がエンジニア以外のユーザーを取り込めて良いと思うよ。
Google Buzz API はまだこれから整備されるようですが、とりあえず新しいものには飛びついてみる wpxtreme なので、まずは簡単なところからタイムライン(って言うのか?)の表示をしてみましょう。とは言っても Atom feeds を取得するだけなので難しいことはありません。feed を取り扱うには WordPress に同梱されている SimplePie を使います。せっかくなので Google Buzz を利用するまでの手順もご説明するぜ。

Google Buzz 表示デモ

※心が汚れている人には、やる気のないデモに見えます。

Google Buzz を利用するまでの流れ

Google 側の設定の話はいいからとっととコードを見る。

1.Google バズ (カ、カタカナ...)のページから[Gmail でバズを試す]をクリックします。
[Gmailでバズを試す]のボタン
2.Google アカウントを作成します。アカウント名(ユーザー名)に @gmail.com を付けるとメールアドレスになりますよ。既に Gmail をご利用の方は、ヤマシイことが無ければそのアカウントを使って OK です。必要事項を入力したら、一番下の[同意して、アカウントを作成します]ボタンをクリックします。
Googleアカウントの作成画面
3.Google アカウントの画面です。写真がアホっぽい所に、積極的に写真を変更させようという Google の意図が見てとれます。[プロフィールの編集]リンクをクリックします。
Googleアカウントの画面
4.プロフィールにあることないこと記入したり写真を変更したら一番下の[変更を保存]ボタンをクリックして保存。次に一番上の[プロフィール]リンクをクリックします。通常プロフィールの URL は ID というか数字の羅列ですが、[プロフィールの URL]にチェックを入れるとユーザー名(アカウント名)を URL に使えます。これはつまりGmail のメールアドレスそのままなので、後々厄介な事が予想される方はチェックはしない方が身のためです。
プロフィールの編集画面
5.プロフィール画面です。ここで URL を確認しましょう。http://www.google.com/profiles/123456789012345678901 のようなヒドイ URL になってますね。この数字がアナタの Buzz feeds を取得するためのユーザー名(ID)となるのでメモっておいてください。
プロフィール画面
6.Gmail でバズります。バズへようこそ、はとっとと閉じて良いです。
Gmailでバズ画面

Google Buzz の Atom feeds を取得する

以下を functions.php に追加します。

<?php 
function get_buzz_feed($user, $count=5){
  if('' === $user) return '<li>User required.</li>';

  include_once(ABSPATH . WPINC . '/feed.php');
  $feed = fetch_feed('http://buzz.googleapis.com/feeds/' . $user . '/public/posted');
  $maxitems = $feed->get_item_quantity($count); 
  // $rss_items = $feed->get_items(0, $maxitems);   // これ間違い。だって atom だもの。
  $feed_items = $feed->get_items(0, $maxitems); 
  if ($maxitems == 0) :
    $output = '<li>No feeds.</li>';
  else:
    $output = '';
    foreach($feed_items as $item) :
      $author = $item->get_author();
      if('' === $output)
        $output = '<li><a href="' . $author->get_link() . '">' . $item->get_title() . '</a></li>';
      $output .= '<li>'
        /* . '<a class="user" href="' . $author->get_link() . '">' . $author->get_name() . '</a>' */
        . preg_replace('@<div>(.*?)</div>@', '\1', $item->get_content())
        . '<i><a href="' . $item->get_permalink() . '">' . $item->get_date() . '</a></i>'
        . '</li>';
    endforeach;
  endif;
  return $output;
}
?>

投稿者名の取得方法はコメントアウト部分を見るとよろしい。で、表示したいところで以下のように書けば OK。

<ul class="buzz">
echo get_buzz_feed('123456789012345678901' /* , 10 */);
</ul>

マークアップの仕方はお好みでアレンジしてちょうだい。

ショートコード化する

記事中に出力したいなら functions.php で以下のようにショートコードを追加して

function sc_get_buzz_feed($atts, $cont) {
  extract(shortcode_atts(array(
    'user' => '',
    'count' => '5'
  ), $atts));

  return get_buzz_feed($user, $count);
}
add_shortcode('get_buzz_feed', 'sc_get_buzz_feed');

記事内で [get_buzz_feed user="123456789012345678901"] とか [get_buzz_feed user="123456789012345678901" count=10] とか書けば OK。

スタイルを指定する

例えば style.css に以下を追加すると始めの表示デモのようになります。

.buzz li{
list-style:none;
padding:.5em 0;
border-bottom:dotted 1px #111;
}
/* .buzz .user{display:block;} */
.buzz i{
display:block;
font-size:80%;
color:#ccc;
}

Buzz っちゅうとなんか B'z みたいやん。そういえば kz っちゅうのもなんか B’z みたいやん。意図せず似てしまうのはいたしかたないことなのだ。Buzz が twitter のパクリだとか B'z のアノ曲はなんとかってバンドのアノ曲にソックリだとかギャーギャーわめいてもしかたない。世の中とはそういうものなのだよ。騒ぐヒマがあったらコードの一つでも書きなさい。あと、名古屋の稲葉浩志と言えば kz なのは結構有名なので、一緒にカラオケ行く人(蛯ちゃんに限る)を募集します。

動作確認バージョン
  • WordPress 2.9.2

10 Comments

  • BLOG: WordPress+SimplePieでGoogle Buzzを表示する http://bit.ly/awNkEO

  • WordPress+SimplePieでGoogle Buzzを表示する | wpxtreme: Google Buzz API はまだこれから整備されるようですが、とりあえず新しいものには飛びついてみる wpxtreme なの… http://bit.ly/byu0rw

  • WordPress+SimplePieでGoogle Buzzを表示する | wpxtreme: Google Buzz API はまだこれから整備されるようですが、とりあえず新しいものには飛びついてみる wpxtreme なの… http://bit.ly/byu0rw

  • WordPress+SimplePieでGoogle Buzzを表示する | wpxtreme: Google Buzz API はまだこれから整備されるようですが、とりあえず新しいものには飛びついてみる wpxtreme なの… http://bit.ly/byu0rw

  • WordPress+SimplePieでGoogle Buzzを表示する | wpxtreme: Google Buzz API はまだこれから整備されるようですが、とりあえず新しいものには飛びついてみる wpxtreme なの… http://bit.ly/ca5AEk

  • WordPress+SimplePieでGoogle Buzzを表示する | wpxtreme: Google Buzz API はまだこれから整備されるようですが、とりあえず新しいものには飛びついてみる wpxtreme なの… http://bit.ly/ca5AEk

  • WordPress+SimplePieでGoogle Buzzを表示する | wpxtreme: Google Buzz API はまだこれから整備されるようですが、とりあえず新しいものには飛びついてみる wpxtreme なの… http://bit.ly/ca5AEk

  • foreach($feed_items as $item) :
    のところなんですが、$rss_itemsなんてことは…?

  • kz kz

    えーまさかそれはないですよー。

    $rss_items = $feed->get_items(0, $maxitems);

    $feed_items = $feed->get_items(0, $maxitems);
    ですシクシク。

  • [Twitter*feed] WordPress+SimplePieでGoogle Buzzを表示する | wpxtreme http://bit.ly/ftD3oC

Leave a Reply