我是flex和as3的新手。我需要整合facebook for flex移动项目。我整合了facebook api for android。我正在互联网上搜索有关在flex中集成facebook的好教程。请建议我很好的教程
答案 0 :(得分:0)
有一个全动作方法来使用涉及facebook flash graph api的facebook apis,但它有点儿麻烦。只要您在浏览器中,它就可以用于大多数事情。
图表api用于提示用户登录其帐户并授予应用程序执行权限的权限,然后对该用户帐户执行所需的操作。您可以使用Facebook.init方法开始整个过程:
Facebook.init(APP_ID, onInit);
APP_ID是您在Facebook上创建应用程序时获得的应用程序ID,而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网站上查找有关权限的更多信息。
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对象,带有相应的补充。 “me / feed”是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回调接口以识别结果
答案 1 :(得分:0)
在我尝试使用fcebook API for flash时,我遇到了不间断的问题。
Facebook被开发者投票认为拥有世界上最差的API,因为不断变化和错误的无法编写的代码。闪存库将与已经糟糕,破碎的开发人员体验不同步......尽管他们可能曾经一度工作过。 Facebook因违反规定而臭名昭着。
迄今为止,我最大的成功来自与他们的PHP API的集成,以使用JSON获取我需要的数据。 Facebook似乎更认真地对待他们(他们不负责闪存)PHP API,并且更希望能够更新和工作。