如何使用CS5.5获得我自己的facebook/twitter墙状态



我正在努力学习如何获得自己的facebook&twitter墙状态转换为flash,这样我就可以将其导出并安装在我的iPhone中。在阅读了facebook和twitter API文档后,我仍然对如何使用它们感到困惑。我对此非常陌生,希望能获得一个合适的教程/示例代码供参考。

感谢您的帮助。非常感谢。

对于Twitter来说,这很容易。只需编写AS3代码即可将Twitter用户RSS加载为XML。之后你将能够使用它。

var myXmlLoader:Loader = new Loader();
myXmlLoader.load(new URLRequest("http://twitter.com/statuses/user_timeline/@twitterUser.rss"));
// just replace "twitterUser" with your twitter user, leave all the rest as is
myXmlLoader.addEventListener(Event.COMPLETE, xmlLoadCompleted);
function xmlLoadComplete(evt){
    var myWallData:XML = new XML(evt.target.data);
    trace(myWallData); // you will get an RSS XML with the last 20 tweets from your account
}

要从Facebook墙上获取RSS,您可以使用以下方法:https://www.facebook.com/feeds/page.php?id=23749877160&format=rss20其中23749877160是您的Facebook帐户ID

这将给你一个rss与你的脸书,就像推特做的一样,

但你需要一些技巧来加载flash。在本地你可以加载它,使用相同的代码加载twitter效果很好,但在网络上,你的swf无法加载,有些跨域问题。

为了解决这个问题,我做了一个简单的PHP文件来加载rss并保存一个包含加载内容的文件。

PHP代码:

<?php
set_time_limit(300); // this is to set the time limit to execute a code, is that the facebook wall take too long to load
$fbURL = "https://www.facebook.com/feeds/page.php?id=23749877160&format=rss20";
$fileName = "myFileName.xml"; // the name you want to do to your file, the file you will load with flash
$doc = new DOMDocument();
if($doc->load( $fbURL )){
    $doc->save($fileName); // saving file in server folder
    }else{
       echo "error";
       }
?>

这很酷,但在打算加载生成的XML之前,您需要执行PHP文件。你可以用这个代码来完成

AS3代码:

var myPHPLoader:Loader = new Loader();
    myPHPLoader.load(new URLRequest("xmlGenerator.xml"));
    myPHPLoader.addEventListener(Event.COMPLETE, phpLoaded);
function phpLoaded(evt){
 trace("PHP executed");
 // do whatever you want
 // after the php is executed you can load the fbXml generated normally 
 }

这很好,但请记住,推特rss和脸书rss对推特每小时有一个呼叫限制(150个呼叫),对脸书我不知道。因此,如果您的应用程序在完成一小时之前达到该限制,它将调用空xml或出现错误。

不要为Facebook担心,在这个例子中,你有一个PHP,它会在加载良好的情况下保存文件,如果PHP没有加载Facebook墙,那么它就不会保存文件,所以你的应用程序会加载旧的fbXml。

使用相同的php加载twitter rss,并保存一个要从flash应用程序加载的文件。

我所做的事情如下。

PHP代码:

<?php
function savePlainRss($loadURL, $fileName){
    set_time_limit(300);    
        $doc = new DOMDocument();
    if($doc->load( $loadURL)){
        $doc->save($fileName);
        }
    }
savePlainRss("https://www.facebook.com/feeds/page.php?id=23749877160&format=rss20", "myFacebookWall.xml");
savePlainRss("http://twitter.com/statuses/user_timeline/@twitterUser.rss", "myTwitterRSS.xml");
?>

这段代码将为twitter rss和Facebook Wall保存一个XML文件,但如果它能加载它,如果不能,它将保留旧文件。

然后从flash加载生成的XML文件。

为了确保我的应用程序不会达到调用限制,避免twitter或facebook将我的应用标记为垃圾邮件,我在服务器上执行了一个cronjob来执行PHP文件每15分钟,所以每小时打给推特和脸书的电话只有4个,你可以在谷歌上找到关于如何做cronjob的帮助,一些主机和网络服务器有工具可以做到这一点。

如果你想要更频繁或更少的更新,你可以每5分钟取消一次通话,但请记住,facebook的加载可能需要很长时间,最多300秒(5分钟),使用的时间不要超过这个时间,以确保你能完成全部工作。

感谢阅读。我希望它能有所帮助:)

对此很满意:http://developers.facebook.com/docs/guides/web/请在此处查找API。我不想在这里张贴代码。。。

此外,heres似乎还有更多信息:http://facebook-actionscript-api.googlecode.com/svn/release/current/docs/index.html

这在actionScript上很成功,我学到了一些新东西如果我有时间,我会创建一个基本的用户状态或其他什么,让你知道,现在我希望我能把你推向正确的方向。

相关内容

最新更新