マイミクの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>