2011-08-17 59 views
0

我对flex和as3很新颖。我需要整合facebook for flex移动项目。我整合了面向android的facebook api。我正在寻找互联网上的优秀教程,以便在flex中集成facebook。请建议我好教程Flex:用于flex项目的facebook apis

+3

投票关闭,因为用户没有[任何研究](http://code.google.com/p/facebook-actionscript-api/),问题太广泛。 –

回答

0

有一个全动作脚本的方法来使用facebook apis,涉及facebook flash graph api,但它有点bug。只要你在浏览器中,它就可以用于大多数事情。

图形api用于提示用户登录到他们的帐户并授予应用程序许可权执行事件,然后对该用户帐户执行所需的操作。你开始用Facebook.init方法的全过程:

Facebook.init(APP_ID, onInit); 

哪里APP_ID为您的应用程序的ID你,一旦你在Facebook上创建应用程序,并OnInit中是您创建一个回调函数,它应该像如下:

function onInit(result:Object, fail:Object):void{ 
    var opts:Object = {perms:"publish_stream"}; 
    if (result) //already logged in because of existing session 
     doStuff(); //in this case, publish on user's wall 
    else 
     Facebook.login(onLogin, opts); 
} 

这两个参数必须在那里。如果定义了请求,那就意味着用户已经登录。如果没有,请提示用户登录并授予应用程序权限。查找更多关于开发者脸书网站的权限。

Facebook.login的第一个参数是回调函数,第二个参数是您希望用户同意的权限。 onLogin()如下:

function onLogin(result:Object, fail:Object):void { 
      if (result) //successfully logged in 
       doStuff(); 
      else   
        oh_well(); // they don't want to use it. 
} 

这可能会提示用户登录,但是,它会立即返回空值的结果。这与Facebook登录功能编写得不好有关,如果你在网站上设置你的Flash并用JavaScript控制台进行调试,你可以看到它明显在定时器上运行,看看你是否退出了或没有退出,它永远不会结束。但如果这不是什么大问题......

...现在,为doStuff。就我而言,我想发布一条消息,swf和缩略图到用户的墙上。我用下面的代码做了这个:

function doStuff(){ 
    var obj:Object={ 
    "message": "This is a test message", 
    "picture": "thumbnail.jpg", 
    "source": "flash file" 
    } 

    Facebook.api("/me/feed", onCallApi, JSON.decode(obj), "POST"); 

} 

Facebook.api()真的很重要。 onCallApi是回调函数,JSON.decode(obj)是上面的json对象,具有适当的添加。 “我/喂”是Facebook如何连接一个饲料,用户,朋友等Learn more about that stuff here. facebook文档有一个更好的方法来放置Flash文件,使用相同的功能,但编码的JSON中的不同参数,但我没有能够得到它的工作(我认为这是因为嵌套的jsons)。正如你所看到的,你需要来自as3corelib的JSON解码器。

onCallAPI:

function onCallApi(result:Object, fail:Object):void { 
    if (result) { 
     //successful post 
    } else { 
      //unsuccessful post 
    } 
} 

,并应为大多数应用程序做。

facebook flash api只是与javascript api接口,因此您需要从嵌入flash的html页面上的facebook中导入适当的javascript函数。

如果你愿意,你可以很容易地修复facebook.login。你可以继续拨打Facebook。init()直到一段时间过去,或者在javascript中生成登录窗口,监听窗口关闭时的状态,然后使用ExternalInterfaces与Flash回调接口来识别结果

0

在我所有的尝试与闪存的fcebook API一起工作,我遇到了不间断的问题。

Facebook被开发人员投票选为世界上最糟糕的API,因为经常发生变化以及错误缠身的无证代码。闪存库将与已经非常糟糕,破碎的开发者体验不同步......尽管它们可能曾经一起工作过。 Facebook因没有通知而闯入事件而臭名昭着。

迄今为止,我的最大成功来自于与PHP API集成,以便使用JSON获取需要的数据。 Facebook似乎更加认真地对待他们(他们不负责Flash)PHP API,并且希望能够更新和工作。