Сейчас на сайте

Сейчас 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 PDF Печать E-mail
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>

 


 

 

0
Обновлено 04.07.2011 15:49
 

Добавить комментарий


Защитный код
Обновить