Сейчас на сайте
Сейчас 6 гостей онлайнПоиск
Tag Cloud
Twitter oAuth и Cod... Баллада о г... сихи лирик... стихи лири... Динамическ... Домашняя с... Использова... Использова... Отправка с... Создание ф... Шепот посл... TinyMCE в Rails стихи лири... Быстрая ра... Пишем собс... Создание с... Установка ... Ностальгия... Москва-Бел... стихи лири... Стихи про п... Крылья сти... Создание п... Простой по... Создание п... Одинокий в... Гражданин ... Несчастный... Сонет стих... Отрезок ст... Врагу не сд... Предчувств... Поиск в ст... Использова... Смерть дву... Использова... Как сделат... Как сделат... Облако тег... Южная сере... Программна... Codeigniter в де... CodeIgniter: фор... проверка в... стихи лири... WEB fetcher(scrappe... Простой Twitt... стихи твор... стихи лири... Проверка п... Создание и ... Побег с Сол... Отправка SMS... MS VSTO 2007/Infusio... Установка R... Fckeditor в при... Степные тр... моя любовь. К твоим оз... Сомкнуть л... чтоб отдат... вот – вот ... еще не расс... Снег тишина и лу... и мира пово... что мой пос... Лишь ты. И т... ты любима ты чиста. Экспорт да... Я пью до дн... что нам теп... -Наш первый... Социальные... Социальные... Спит в можж... Воздух про... Стены рожденные ... эхо умрет. Неотправле... стихи лири... Он порезал... Боясь шагн... не осталос... Услышать з... Программир...
| Простой Twitter client с помощью Adobe AIR |
|
|
|
| 04.07.2011 15:43 |
|
Adobe AIR приложение работает на разных платформах ,что очень удобно. К тому же,Twitter убрал опцию в получении RSS feed напрямую. Мы напишем простой Twitter клиент c минимальным набором опций. Итак, далее все описываем пошагово: 1. Создаем в Flex Builder новый проект, выбираем тип «Desktop Application» ,вводим имя проекта «MyTwitter».
2. Начальный исходный код проекта выглядит так: <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> </mx:WindowedApplication>
Нужно добавить элемент управления Label,чтобы отображался заголовок приложения:
<mx:Label x="10" y="10" text="My Super Twitter Application!" fontFamily="Arial" fontWeight="bold" fontSize="15"/>
Затем добавляем контрол List, для отображения списка сообщений в Twittere.
<mx:List left="10" right="10" top="41" bottom="10" id="tweets"> </mx:List> Пока что он пустой, однако в дальнейшем мы заполним его данными из микроблога.
3. Для того, чтобы получить эти данные, нам нужно использовать вызов Twitter API с помощью RSS.Формат вызова для получения сообщений из Twitterа такой:
http://api.twitter.com/1/statuses/user_timeline.rss?screen_name={user_name}
Для создания запроса создадим HTTPService:
<mx:HTTPService id="twitterFeed" url="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=mytwitter" />
4. Теперь создадим новый компонент в данном проекте. Для этого выбираем в меню Flex Buildera:New ->MXML Comonent. По умолчанию оставляем тип Canvas. Дело в том, что полученные данные будут отображаться в формате RSS в виде: дата публикации, заголовок, ссылка на статью.
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="164"> <mx:Text x="54" y="10" text="on {data.pubDate}" fontFamily="Arial" fontSize="10" fontWeight="bold" color="#969696" width="620" /> <mx:Text y="46" text="{data.title}" width="643" right="49" fontFamily="Arial" fontWeight="bold" fontSize="11"/> <mx:Text y="86" text="{data.link}" width="449" right="243" fontFamily="Arial" fontWeight="normal" fontSize="10"/> </mx:Canvas> 5. Далее редактируем контрол List в основном приложении:
<mx:List left="10" right="10" top="41" bottom="55" id="tweets" dataProvider="{twitterFeed.lastResult.rss.channel.item}" itemRenderer="Tweet">
Здесь мы указываем источник данных из HTTPService с id="twitterFeed и ссылаемся на компонент, как на элемент, который будет отображать полученные данные.Сохраняем приложение и запускаем.Показывается список сообщений в микроблоге.
6. Теперь мы добавим новую опцию – отправление сообщений в Tweeter.Для этого добавим несколько новых контролов в базовое приложение:
<mx:Label x="27" y="486" text="New Message:" id="NewMsgLbl"/> <mx:TextArea bottom="66" left="10" right="10" id="tweet_msg" maxChars="120" height="52"/> <mx:Button x="350" y="582" label="Reset" id="ResetBtn"/> <mx:Button x="408" y="582" label="Submit" id="SubmitBTn"/>
Это форма для отправки сообщений в микроблог. Затем пишем скрипт, который будет осуществлять собственно отправку новых сообщений:
<mx:Script> <![CDATA[ import mx.events.CloseEvent; import mx.controls.Alert; import mx.rpc.events.ResultEvent; import com.dynamicflash.util.Base64;
private function Reset():void {
Alert.show("Do you want to clear all text in message?","Reset Warning", (Alert.YES | Alert.NO),this, closeHandler); } private function closeHandler(event:CloseEvent):void {
if (event.detail == Alert.YES) { tweet_msg.text = "";
} else { return; }
}
private function postData():void {
var request:HTTPService = new HTTPService();
request.url = "http://twitter.com/statuses/update.xml";
request.method = "POST";
request.addEventListener(ResultEvent.RESULT,handleComplete);
var username:String = "username"; var password:String = "password";
var encodedCredentials:String = Base64.encode(username + ":" + password); var headerArray = new Array(new URLRequestHeader("Authentication","Basic " + encodedCredentials));
request.headers = headerArray;
request.request = {status: tweet_msg.text}; request.send(); }
private function handleComplete(e:Event):void{
tweet_msg.text = ""; twitterFeed.send();
}
]]> </mx:Script>
Сначала мы подключаем необходимые библиотеки. Затем пишем метод для обработки кнопки «Reset», которая очищает ранее введенный текст. Следующий метод отправляет данные в Tweeter. Создается новая служба, формируется строка запроса и данные из формы отправляются прямиком в микроблог.
7. На конец, выбираем во Flex Builder пункт меню File->Export->Release Build. Сохраняем проект как релиз. Теперь его можно устанавливать на любом компьютере и пользоваться.:-) Ниже полный исходный код приложения:
MyTwitter.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="twitterFeed.send()" width="908" height="642"> <mx:Label x="10" y="10" text="My Twitter" fontFamily="Arial" fontWeight="bold" fontSize="15"/> <mx:HTTPService id="twitterFeed" url="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=mytweeter" /> <mx:List left="10" right="10" top="-12" bottom="173" id="tweets" dataProvider="{twitterFeed.lastResult.rss.channel.item}" itemRenderer="Tweet"> </mx:List> <mx:Script> <![CDATA[ import mx.events.CloseEvent; import mx.controls.Alert; import mx.rpc.events.ResultEvent; import com.dynamicflash.util.Base64;
private function Reset():void {
Alert.show("Do you want to clear all text in message?","Reset Warning", (Alert.YES | Alert.NO),
this, closeHandler); } private function closeHandler(event:CloseEvent):void {
if (event.detail == Alert.YES) { tweet_msg.text = "";
} else { return; }
}
private function postData():void{ var request:HTTPService = new HTTPService(); request.url = "http://twitter.com/statuses/update.xml"; request.method = "POST"; request.addEventListener(ResultEvent.RESULT,handleComplete); var username:String = "username"; var password:String = "password"; var encodedCredentials: String = Base64.encode(username + ":" + password); var headerArray = new Array(new URLRequestHeader("Authentication","Basic " + encodedCredentials)); request.headers = headerArray; request.request = {status: tweet_msg.text}; request.send(); } private function handleComplete(e:Event):void{ tweet_msg.text = ""; twitterFeed.send(); }
]]> </mx:Script> <mx:TextArea bottom="66" left="10" right="10" id="tweet_msg" maxChars="120" height="52"/> <mx:Button x="350" y="582" label="Reset" id="ResetBtn" click="Reset()"/> <mx:Button x="408" y="582" label="Submit" id="SubmitBTn" click="postData()"/> <mx:Label x="27" y="486" text="New Message:" id="NewMsgLbl"/> </mx:WindowedApplication>
Tweet.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="164"> <mx:Text x="54" y="10" text="on {data.pubDate}" fontFamily="Arial" fontSize="10" fontWeight="bold" color="#969696" width="620" /> <mx:Text y="46" text="{data.title}" width="643" right="49" fontFamily="Arial" fontWeight="bold" fontSize="11"/> <mx:Text y="86" text="{data.link}" width="449" right="243" fontFamily="Arial" fontWeight="normal" fontSize="10"/> </mx:Canvas>
|
| Обновлено 04.07.2011 15:49 |


