我对flex和as3很新颖。我需要整合facebook for flex移动项目。我整合了面向android的facebook api。我正在寻找互联网上的优秀教程,以便在flex中集成facebook。请建议我好教程Flex:用于flex项目的facebook apis
回答
有一个全动作脚本的方法来使用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回调接口来识别结果
在我所有的尝试与闪存的fcebook API一起工作,我遇到了不间断的问题。
Facebook被开发人员投票选为世界上最糟糕的API,因为经常发生变化以及错误缠身的无证代码。闪存库将与已经非常糟糕,破碎的开发者体验不同步......尽管它们可能曾经一起工作过。 Facebook因没有通知而闯入事件而臭名昭着。
迄今为止,我的最大成功来自于与PHP API集成,以便使用JSON获取需要的数据。 Facebook似乎更加认真地对待他们(他们不负责Flash)PHP API,并且希望能够更新和工作。
- 1. flex - programmaticSkin仅用于特定项目
- 2. 如何从其他Flex项目调用Flex项目?
- 3. 将AS项目转换为Flex Builder中的Flex项目
- 4. Flex项目架构?
- 5. flex MS项目库
- 6. Flex项目结构
- 7. 将flex web项目转换为flex项目
- 8. Flex移动项目选项
- 9. 的Flex项目在Firefox
- 10. Flex项目中的AIR Stage3D
- 11. 在tamil的flex contextmenu项目
- 12. flex项目中的问题
- 13. Flex项目与Actionscript项目的缺点?
- 14. CodeIgniter项目中的Flex项目?
- 15. URLLoader不适用于Flex 4.6适用于Android的移动项目
- 16. 当使用flex builder和flex sdk编译项目时的差异
- 17. Facebook的Flex集成
- 18. Flex 4 DropDownList所选项目
- 19. Flex Builder AS3项目移植
- 20. flex项目忽略宽度
- 21. Flex项目未执行
- 22. Flex项目包括SWFAddress.js
- 23. Flex Spark DropDownList - 在项目
- 24. Flex DropDownList不选择项目
- 25. Flex移动项目:Alert.show
- 26. Flex库项目:NativeMenu与ContextMenu
- 27. 将Flash项目转换为flex项目
- 28. 组织团队使用的Flex项目
- 29. 如何使Flex项目不填充Flex容器的高度?
- 30. 将现有的Flex 4.x项目迁移到Apache Flex 4.x
投票关闭,因为用户没有[任何研究](http://code.google.com/p/facebook-actionscript-api/),问题太广泛。 –