使用 Flash builder 获取 Facebook Mobile 应用程序的好友列表

问题描述 投票:0回答:2

这就是我想要发生的事情:

  1. 获取用户好友列表
  2. 将它们展示在任何类型的容器中。

我去看了图形 API 文档,但考虑到我是一个视觉学习者,这并没有真正帮助我。为了获得移动应用程序的基本功能,我遵循了一些教程,这些教程让我在应用程序中实现其他更复杂的功能时陷入了悬崖。

我将在此处列出移动应用程序的链接:第 1 部分第 2 部分。这些教程对我帮助很大。但当他们结束时,我不得不开始自己实现功能,我有点陷入停滞状态。我一直在寻找如何做到这一点,但找不到任何有帮助的东西,因为它们都是针对桌面应用程序的。我还查看了 Facebook API 提供的示例代码以供参考。但没有一个适用于 Flex Mobile,而且您似乎必须像他们一样编写代码才能使这些功能正常工作。好吧。所以再一次,我只是希望能够有一个可以显示的朋友列表。稍后我会担心了解朋友的详细信息。我想我也许能够做到这一点。另外,我将发布我的所有代码,因为我现在无法保护它。不过我要声明一件事。我绝不要求别人为我编写代码。我只是一个非常依赖视觉的学习者。但我认为,如果我能够以更简单的方式解释实现功能的过程,我将能够处理好自己的事情。这也带来了另一个问题。因为我是一个视觉人。使用 flash 代替 Flash Builder 会更适合我吗?

这是代码:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           applicationDPI="160" creationComplete="application1_creationCompleteHandler(event)"
           currentState="loggedout"
           width.loggedin="392" height.loggedin="442">
<fx:Style source="beta.css"/>
<fx:Script>
    <![CDATA[
        import com.facebook.graph.FacebookMobile;
        import com.facebook.graph.controls.Distractor;
        import com.facebook.graph.core.FacebookURLDefaults;
        import com.facebook.graph.data.Batch;
        import com.facebook.graph.net.FacebookRequest;
        import com.facebook.graph.utils.FacebookDataUtils;
        
        import mx.collections.ArrayList;
        import mx.core.UIComponent;
        import mx.events.FlexEvent;
        
        
        public var permissions:Array = ["user_photos","user_birthday","read_stream","publish_stream","read_friendslists","manage_friendslist"]; 
        protected function application1_creationCompleteHandler(event:FlexEvent):void
        {
            FacebookMobile.init("APP_ID", onLogin)
        }
    
        protected function submitPost():void
        {
            FacebookMobile.api("/me/feed",submitPostHandler,{message:statusInput.text}, "POST");
        }
        
        protected function submitPostHandler(result:Object,fail:Object):void
        {
            statusInput.text="";
            FacebookMobile.api("/me/statuses",getStatusHandler);
        }
        
        protected function getStatusHandler(postsuccess:Object, fail:Object):void
        {
            lblStatus.text=postsuccess[0].message;
        }

        
        protected function login():void{
            var facebookWebView:StageWebView = new StageWebView();
            facebookWebView.viewPort = new Rectangle(0,0,stage.width, stage.height-100);
            FacebookMobile.login(onLogin, this.stage,permissions, facebookWebView);
        }
        
        protected function onLogin(success:Object, fail:Object):void{
            if(success){
                currentState="loggedin";
                nameLbl.text=success.user.name;
                imgUser.source=FacebookMobile.getImageUrl(success.uid,"small");
                birthdayLbl.text=success.user.birthday;
                FacebookMobile.api("me/statuses",getStatusHandler);
            }
        }
        
    ]]>
</fx:Script>

<s:states>
    <s:State name="loggedin"/>
    <s:State name="loggedout"/>
</s:states>
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button id="loginoutBtn" x="244" y="13" label="Log In"
          x.loggedin="228" y.loggedin="10" label.loggedin="Log out"
          click.loggedout="login()"/>
<s:Label id="nameLbl" includeIn="loggedin" x="67" y="11" width="97" height="43"/>
<s:Image id="imgUser" includeIn="loggedin" x="8" y="9" width="50"/>
<s:Label id="birthdayLbl" includeIn="loggedin" x="66" y="86" width="96"/>
<s:Label id="lblStatus" includeIn="loggedin" x="10" y="135" width="154" height="58" />
<s:TextInput id="statusInput" includeIn="loggedin" x="10" y="230" height="40"/>
<s:Button includeIn="loggedin" x="172" y="278" width="115" height="32" label="Submit"
          click="submitPost()"/>

<s:Button x="10" y="147" width="157" label="Post photo" includeIn="loggedin"
          x.loggedin="10" y.loggedin="278" width.loggedin="113" height.loggedin="32"/>
<s:List includeIn="loggedin" x="170" y="61" width="212" height="161" itemRenderer="friendsRender"></s:List>
</s:Application>
facebook apache-flex facebook-graph-api adobe flash-builder
2个回答
0
投票

假设您有as3的facebook mobile,您可以使用以下功能:

FacebookMobile.api("/me/friends",onApiCallFriends);

protected function onApiCallFriends(response:Object, fail:Object):void
{
if (response)
{   
      var friends:Array = response as Array;
    }
}

应该是这样。


© www.soinside.com 2019 - 2024. All rights reserved.