マイミクのnicknameとidをFlexのDataGridに表示
mxml部分
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()"> <mx:Script> <![CDATA[ import flash.external.ExternalInterface; import mx.collections.ArrayCollection; public function initApp():void { ExternalInterface.call( "get_friends" ); ExternalInterface.addCallback("setfriends", setfriends); } [Bindable] public var myFriends:ArrayCollection; private function setfriends(data:Array):void { myFriends = new ArrayCollection(data); } ]]> </mx:Script> <mx:Panel title="MyMixiList" height="100%" width="100%" paddingTop="10" paddingLeft="10" paddingRight="10"> <mx:DataGrid id="MyMixiList" width="100%" height="100%" rowCount="5" dataProvider="{myFriends}"> <mx:columns> <mx:DataGridColumn dataField="nickname" headerText="NickName"/> <mx:DataGridColumn dataField="id" headerText="Id"/> </mx:columns> </mx:DataGrid> </mx:Panel> </mx:Application>
GadgetXML内のJavaScript部分
<script type="text/javascript"> function get_friends() { var req = opensocial.newDataRequest(); req.add(req.newFetchPeopleRequest(opensocial.newIdSpec({ userId: 'OWNER', groupId: 'FRIENDS' }), { max: 1000 }), 'friends'); req.send(function(res) { var data = res.get('friends').getData().asArray().map(function(p) { return { nickname: p.getDisplayName(), id: p.getId()} }); if (navigator.appName.indexOf("Microsoft") != -1) { window["aexternal"].setfriends(data); } else { document["aexternal"].setfriends(data); } }); } </script>