Для Твиттера это легко.Просто напишите код AS3, чтобы загрузить RSS пользователя Twitter в формате 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
}
Чтобы получить RSS со своей стены Facebook, вы можете использовать это: https://www.facebook.com/feeds/page.php?id=23749877160&format=rss20, где 23749877160 - ваша учетная запись FacebookИдентификатор
, который даст вам RSS с вашим Facebook, как это делает твиттер,
Но вам нужен какой-то трюк, чтобы загрузить его со вспышкой.Локально вы можете загрузить его, и он хорошо работает, используя тот же код для загрузки твиттера, но в Интернете ваш 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 и Facebook RSS имеют лимит вызовов в час (150 звоните) для твиттера, для фейсбука я не знаю.поэтому, если ваше приложение достигнет этого предела до завершения часа, оно вызовет пустой xml или ошибку.
Не беспокойтесь о Facebook в этом примере, у вас есть PHP, который сохранит файл, только если он хорошо загружается, еслиPHP не загружает стену Facebook, а затем не сохраняет файл, поэтому ваше приложение будет загружать старый файл fbXml.
Используйте тот же php, чтобы загрузить твиттер rss и сохранить файл для загрузки из вашего флеш-приложения.
Я сделал следующее:
Код 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");
?>
Этот код сохранит файл XML для Twitter rss и стены Facebook, но только если он сможет загрузитьесли он этого не сделает, он сохранит старый файл.
Затем из флэш-памяти загрузите сгенерированные файлы XML.
Чтобы я был уверен, что мое приложение не достигнет лимита вызовов и не будет использовать теги twitter или facebookмое приложение как спам, я выполнял cronjob на своем сервере, чтобы выполнять PHP-файл каждые 15 минут, чтобы количество вызовов в твиттере и Facebook в час составляло всего 4, вы можете найти справку в Google о том, как сделать cronjob, какой-нибудь хостинг, и мыНа сервере b есть инструменты для этого.
вы можете делать звонки каждые 5 минут, если вы хотите более частые обновления или меньше, но имейте в виду, что загрузка Facebook может занимать длительное время, до 300 секунд (5 минут) Не используйте меньше, чтобы быть уверенным, что у вас будет полная работа.
Спасибо за чтение.Надеюсь, это поможет:)