The code below uses the TwitterScript ActionScript API. For a working example, check out Tour de Flex in the Cloud API category.
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#323232" width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Script>
<![CDATA[
import twitter.api.*;
import twitter.api.data.*;
import twitter.api.events.*;
import flash.utils.Dictionary;
import mx.managers.CursorManager;
[Bindable]
private var userArray:Array;
[Bindable]
private var statusDict:Dictionary = new Dictionary();
private function onLogin():void
{
var twit:Twitter = new Twitter();
CursorManager.setBusyCursor();
twit.setAuthenticationCredentials(userid.text,pw.text);
twit.addEventListener(TwitterEvent.ON_FRIENDS_RESULT,onFriendsLoad);
twit.loadFriends(userid.text,true);
}
private function onFriendsLoad(evt:TwitterEvent):void
{
userArray = Array(evt.data).pop();
for each(var item in userArray) {
var status:TwitterStatus = item.status;
statusDict[item.id]=status.text;
}
CursorManager.removeBusyCursor();
}
private function getStatus(item:Object,col:DataGridColumn):String
{
return statusDict[item.id];
}
]]>
</mx:Script>
<mx:VBox width="100%" height="100%">
<mx:Form defaultButton="{btn}" color="#FFFFFF" >
<mx:FormHeading label="Twitter Login Data"/>
<mx:FormItem label="Userid:">
<mx:TextInput id="userid" width="200" color="#000000"/>
</mx:FormItem>
<mx:FormItem label="Password:">
<mx:TextInput id="pw" width="200" displayAsPassword="true" color="#000000"/>
</mx:FormItem>
<mx:FormItem>
<mx:Button id="btn" label="Login" click="onLogin()"/>
</mx:FormItem>
</mx:Form>
<mx:DataGrid id="dgData" dataProvider="{userArray}" width="100%" height="100%" variableRowHeight="true"
x="100" doubleClickEnabled="true"
doubleClick="navigateToURL(new URLRequest(dgData.selectedItem.profileImageUrl))" selectionColor="#6496C3">
<mx:columns>
<mx:DataGridColumn headerText="Image" width="60" >
<mx:itemRenderer>
<mx:Component>
<mx:Image source="{data.profileImageUrl}" horizontalAlign="center" verticalAlign="middle"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="screen_name" headerText="Screen Name" width="95"/>
<mx:DataGridColumn labelFunction="getStatus" headerText="Status" width="500" wordWrap="true"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:WindowedApplication>