Yahoo!Pipesでtwitter簡易ビューア

umhr_pipestwitterYahoo!PipesでTwitterのログを読んでみる

Yahoo! Pipesについて

■Yahoo! Pipesについて
すぐに役立つWeb絶品テクニック Yahoo!Pipesでつくるお手軽PhotoViewer
http://journal.mycom.co.jp/series/usefullweb/001/index.html

■Yahoo! Pipesのサイト
Pipes: Rewire the web
http://pipes.yahoo.com/pipes

■Twitter Pipeのページ。既に作っている人がいたので、それをコピーした。
他人が作ったモノを気軽にコピー&改変してつかえるのもWeb2.0的
Twitter Pipe
http://pipes.yahoo.com/pipes/pipe.info?_id=92416843789c0b7f9a0d0fbfe0aa54c6

動作デモ

▼Wonderfl

*20090812、アクセス数が多いと、Twitter側の制限に引っかかり、表示されないことがあるようです。

*20090810、10:00現在、動作していることを確認しました。

*20090807、17:00現在Yahoo! PipesとTwitterの接続がうまくなされてないようです。外部のAPIに依存すると、こういう時どうしようもなくなりますね。

サービス妨害攻撃に対する調整によって、一時的にAPIが使えなくなっているようです。
http://www.itmedia.co.jp/enterprise/articles/0908/08/news004.html
http://status.twitter.com/post/157979213/restoring-api-and-sms

説明

Yahoo! Pipesを使って、
twitterのログを読んでみるテスト。
自動リロードなどの機能はありません。
書き込みもできません。
フォローしている人の投稿も読めません。
はじめてのYahoo! Pipesなのです。

Pipesってホントに良くできているね。すごい。

ちなみに僕はほとんどtwitterに書き込まないので、
フォローしても良いこと無いと思うよ。

参考

Yahoo!Pipesの使い方(全モジュール解説)
http://chikura.fprog.com/index.php?UID=1175617938

ケーススタディで学ぶYahoo! Pipes入門
http://chikura.fprog.com/index.php?UID=1208233725

ActionScript AS3(FP10)

[sourcecode language=”as3″]
/*
Yahoo! Pipesを使って、
twitterのログを読んでみるテスト。
自動リロードなどの機能はありません。
書き込みもできません。
フォローしている人の投稿も読めません。
はじめてのYahoo! Pipesなのです。

Pipesってホントに良くできているね。すごい。

ちなみに僕はほとんどtwitterに書き込まないので、
フォローしても良いこと無いと思うよ。
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
[SWF(width = "465", height = "465", backgroundColor = 0xFFFFFF, frameRate = "30")]
public class Main extends Sprite{
private var userName:TextField = new TextField();
private var tf:TextField = new TextField();
public function Main() {
var button:Sprite = new Sprite();
button.graphics.lineStyle (2, 0x999999, 1.0);
button.graphics.beginFill (0xCCCCCC, 1.0);
button.graphics.drawRoundRect (200, 2 , 100 , 23 , 10 , 10);
button.buttonMode = true;
addChild(button);
button.addEventListener(MouseEvent.CLICK,CLICK);
userName.x = 2;
userName.y = 2;
userName.width = 196;
userName.height = 21;
userName.border = true;
userName.type = "input";
userName.text = "umhr";
addChild(userName);
var userIDText:TextField = new TextField();
userIDText.x = 300;
userIDText.y = 6;
userIDText.width = 170;
userIDText.height = 21;
userIDText.text = "<– change UserID";
userIDText.selectable = false;
addChild(userIDText);
CLICK();
}

private function CLICK(e:MouseEvent = null):void {
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, COMPLETE);
var pipesURL:String = "http://pipes.yahooapis.com/pipes/pipe.run?_id=92416843789c0b7f9a0d0fbfe0aa54c6&_render=rss&statustitle="+userName.text+"&username="+userName.text;
loader.load(new URLRequest(pipesURL));
}

private function COMPLETE(e:Event):void {
var list:XML = new XML(e.currentTarget.data);
var _length:int = list.channel.item.length();
var txt:String = "";
for (var i:int = 0; i < _length; i++) {
txt += String(list.channel.item[i].description) + "\r"
}
tf.y = 30;
tf.width = stage.stageWidth;
tf.height = stage.stageHeight;
tf.wordWrap = true;
tf.htmlText = txt;
addChild(tf);
}
}
}

[/sourcecode]