我正在努力学习如何获得自己的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上很成功,我学到了一些新东西如果我有时间,我会创建一个基本的用户状态或其他什么,让你知道,现在我希望我能把你推向正确的方向。