WEB&デザインの備忘録&日記
as3でTwitterつぶやき読み込み覚書き
This movie requires Flash Player 9
※APIの仕様が変わったのか、2010/10時点で上記のFLASH動きません。未調査状態です
→気のせいでしたw
TwitterとFLASHの連携について調べてみたのでメモ。
別ドメイン間(クロスドメイン)でtwitterのつぶやきを取得は
FLASHだけではできないので一度FLASHと同じドメインにあるPHPでつぶやきのXMLファイルを取得してきてから、FLASHで読み込ませる。
FLASH本体のソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | var xmlLoader:URLLoader; var bodyArray:Array; var userArray:Array; var iXML:XML; var NowTwit:int = 0; init(); function init():void { var n:int = Math.floor(Math.random()*1000000); var xmlURL:String = "http://yourdomein.com/proxy.php?url=http://twitter.com/statuses/public_timeline.xml?cache="+n; xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, traceComplete); xmlLoader.addEventListener(ProgressEvent.PROGRESS, xProgress); xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, XmlErrorHandler); xmlLoader.load(new URLRequest(xmlURL)); } function xTimerEventHandler(evt:TimerEvent):void { user_txt.text =userArray[NowTwit]; twit_txt.text = bodyArray[NowTwit]; NowTwit++; if(NowTwit >= bodyArray.length ) { NowTwit = 0; } } function xProgress(evt:ProgressEvent):void { twit_txt.text = "つぶやきロード中"; } function traceComplete(evt:Event):void { iXML = new XML(xmlLoader.data); bodyArray = new Array; userArray = new Array; for(var t:int = 1; t <= 10; t++) { var body:String = String(iXML.status[t-1].text); var user:String = String(iXML.status[t-1].user.name); userArray.push(user); bodyArray.push(body); } var timerObj:Timer = new Timer(3000); timerObj.addEventListener(TimerEvent.TIMER, xTimerEventHandler); timerObj.start(); } function XmlErrorHandler(evt:Event):void { trace("xmlError"); } |
alt alt-scape weblog
こちらのブログの記事とソースを参考にさせていただきました。
ここにメモ書きしたソースは間違い等ある可能性があるので参考にする場合はご注意を。
proxy.php
1 2 3 4 5 6 | <?php if(isset($_GET["url"])) { $file = readfile($_GET["url"]); return $file; } ?> |
XML読み込むPHP。今回PHPは動けばよしということでスルー。
このスクリプト試してた時にtwitterのAPIにアクセスしまくってたら
Rate limit exceeded. Clients may not make more than 150 requests per hour.
っていうXMLが返ってきた。1時間に150リクエスト以上すると制限がかかるんだねー。

















