オレはいったいなんなんだ。

とにかく、そんなにハマるつもりではなかったのだが。

どうも、自分がやりたいことは、こういう方法でしか実現できないらしい・・・と分かると、やってみてしまうじゃないかyo!

問題はtwitterだ。

自分のtimeline(「ホーム」で見えるもの)をブログパーツにしようとすると、今現在一般公開されているもので
TwitterWind
がある。これを利用してカスタマイズできないか?と思ったのだが、どうみても無理。ソースも分からないし。

となれば、自分で作るしかない。(ここでサッポロビールのCMが流れる

home_timelineを取得に行くと、Twitter APIのBASIC認証画面になる。
これではブログパーツにならないので、これを乗り越えないといかん。
どうも、Twitterは6月くらいからBASIC認証ではなくOAuth認証に全面的に切り替えるような話もあるので、それならOAuth認証でやってしまいましょう、ってことで。

参考にしたのがこちら。
PHP+OAuthでTwitter

この手順どうりにやっていくと、なんとすばらしい。
ちゃんとhome_timelineがphpのプログラムで取得できるでございます。

次はxmlで取りだしたのを、どうやってwebに出すかだねー。
これには、PHP5ならsimplexml_load_stringなる関数が用意されていて、そんなに難しくなく要素を取り出せる。
親ノード、子ノードの取りだし方がちょっとわかんなかったけど、構造見て決め打ちだ(笑)

いくつか、よそからもfunctionを引っ張ってきて、今日のところはこれまで。
twitterアイコンも、本文リンクも、再現できた。
なぜかぼかしで(笑)
timeline

次は、これをもとにして、自分がフォローしている人のtweetのうち、特定のキーワードを含むtweetだけを表示させるようにすれば。
ほら。出来上がり。(笑)
かなあ・・・。

javascriptも勉強せんといかん。
jsonなんて、こないだまで人の名前かと思ってたよ(;´д`)トホホ…



急がば回れ

結局は、こんな感じ。


あれこれ実験してみて、うまくできたなあ、と思ったものの、
文字コードの変換がうまくいかない。
utf-8の自分の環境だと大丈夫だけど、euc-jpとかのページに表示させると文字化けする。

で、結局、twitterオフィシャルのウィジェットに立ち戻りました(笑)

最初に見たときはjavascriptのコードがさっぱり分からなかったのに、
さんざん勉強したおかげで、どこをいじればいいのかが見えてきた!w

オフィシャルのものに比べて
・アイコンを少し大きく表示
・ニックネームのほうを大きく、アカウントを小さく表示
・フッター部分を変更
してみました。

スタイルシートのクラス指定も見えてきたので、もうちょっといろいろ変えられるかも、です。

※自分としては、magpierssの使い方も分かったし、文字列の縦スクロール用のjavascriptのソースも見つけたし、いろいろ収穫の多い実験でした。人間いくつになっても勉強だね(`・ω・´)



作業メモ3:AlbiBoardをRSSで読む

がんばって、とりあえずここまで来た!
http://y-nagisa.sakura.ne.jp/magpierss/example2.html

詳しいことは後で追記します。


[JS]パネルをスムーズに自動スクロールさせるニュースティッカー



作業メモ2:AlbiBoardをRSSで読む

今日のところはこんな感じ。
http://y-nagisa.sakura.ne.jp/magpierss/test.html

このページの右サイドバーの一番下にも貼り付けてみた。

昨日やってみたのは「index.php」というページにRSSを表示させる方法。
今日やってみたのは、任意のページの任意の場所にスクリプトを貼り付けて、RSSリストを呼び出す方法。
かなりブログパーツに近づいてきたかな?

手順は

  1. RSSリストを表示させるためのphpファイル(rss.php)を作成する
  2. ホームページの任意の場所に「<script type=”text/javascript” src=”http://y-nagisa.sakura.ne.jp/magpierss/rss.php”></script>」というコードを挿入してphpファイルを呼び出す。
  3. 表示を確認する

phpのソースコードは、エラーを直しながら力づくで書いたので(笑)、かなり野蛮です。
[php]
channel[‘title’];
$text = “

“;
$text .= “

“;
foreach ($rss->items as $item ) {
$title = $item[title];
$title = substr($title,10);
$title = str_replace(“\n”, “”, $title);
$title = ereg_replace(“(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)”, “\\1\\2“, $title);
$text .= “

“;
}
$text .= “

“;
$text .= “$title
$title

“;
echo “document.write(\”$text\”)”;
?>[/php]
実際のコードにはテーブルの枠線や背景色などスタイル設定してるので、もう少し複雑になってます。

いちばん引っかかったのは、「document.write」するのに改行コードを取り除いたり、エスケープ文字関連をちゃんとすることだったり。そういう、結局はjavascriptの基本的なところでつまづくんだよね・・・。基本がなってないので、付け焼刃作業はたいへんでごわす。



作業メモ1:AlbiBoardをRSSで読む

現在の勉強の成果は、こんなかたち。
http://y-nagisa.sakura.ne.jp/magpierss/
image

基本的には、自作でブログパーツを作るとしたらどうやる?ということなのですが。
手順はまず、MagpieRSSを導入するところから始まります。
こちらこちらを参考にしました。

  1. MagpieRSSをダウンロードして解凍する
  2. サーバーに適当なディレクトリを作成して、そこに拡張子が .inc のファイルと extlib フォルダををアップロード
  3. ディレクトリ直下に「cache」ディレクトリを作成し、属性を「777」に
  4. ディレクトリ内に「index.php」を作成してアップロード
  5. urlにアクセスして表示を確かめる

index.phpの内容はこんな感じです。
[html]



AlbiBoardをRSSで読む

channel[‘title’];
echo “

$title

\n”;
echo “

    \n”;
    foreach ($rss->items as $item ) {
    $title = $item[title];
    $title = substr($title,10);
    $title = ereg_replace(“(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)”, “\\1\\2“, $title);
    echo “

  • $title
  • \n”;
    }
    echo “

\n”;
?>



[/html]
大事なのはphpの部分なんだけど

  • 18行目:「define(‘MAGPIE_OUTPUT_ENCODING’,’UTF-8′);」で文字コードを指定しておくと、文字化けしない
  • 20行目で読み込みたいRSSのURLを指定する
  • 27行目は、本文の行頭毎に出てくる「AlbiBoard:」という文字列をカットするためのしかけ
  • 28行目の「ereg_replace関数」で、各本文中にでてくるURLをリンク形式に書き換えるための置換を行う

twitterのRSS配信は20件までとなっているようなので、これで常に最新20件を呼び出せることになる。

これをjavascriptで呼び出して、見栄えよく表示させたり自動でリロードさせたりすると、ブログパーツらしいものが出来上がるのかなあ・・・(遠い目



« 前のページ次のページ »

  •  

    ブログパーツの貼り付け方はこちらへ
  • 月別アーカイブ

  • あいさつ掲示板

  • メタ情報