加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – 为什么Facebook Actionscript API init()不起作用?

发布时间:2020-12-15 01:47:01 所属栏目:百科 来源:网络整理
导读:我在打电话 ????com.facebook.graph.Facebook.init(APP_ID,loginHandler); 使用actionscript api登录facebook(如本教程中所述:http://www.adobe.com/devnet/facebook/articles/flex_fbgraph_pt4.html).但是,它似乎没有做任何事情. 查看API源代码,对JS的唯一
我在打电话
????com.facebook.graph.Facebook.init(APP_ID,loginHandler);

使用actionscript api登录facebook(如本教程中所述:http://www.adobe.com/devnet/facebook/articles/flex_fbgraph_pt4.html).但是,它似乎没有做任何事情.

查看API源代码,对JS的唯一调用是
????ExternalInterface.call(‘FBAS.init’,JSON.encode(options));

需要的两个javascript库是:

http://connect.facebook.net/en_US/all.js
FBJSBridge.js

但是,我在这些库中找不到任何对FBAS的引用.我甚至使用正确的库吗?我错过了为什么FBAS不存在的另一个原因吗?甚至为什么调用Facebook.init()什么都不做?

解决方法

FBJSBridge.js已嵌入SDK中.看看com.facebook.graph.core.FacebookJSBridge.as,你会看到FBJSBridge.js的整个javascript块被添加到com.facebook.graph.Facebook.as的构造函数中的ExternalInterface上.

我整天都在苦苦挣扎.我一直在观看由Facebook.init()产生的http GET,它看起来只是等到它超时,此时会产生另一个GET.它永远不会恢复正常.我尝试了APPID,那里的APIKEY和各种参数组合,但我从来没有看到它回来.我必须得出结论,它是如何工作的.如果没有,那就是它的工作方式. : – /

无论如何,你会在FacebookJSBridge.as中的JS块中看到FBAS内部,init会订阅触发Facebook.handleSessionChange()的“auth.sessionChange”事件.您可以看到调用回调的位置.诀窍在于,sessionChanges会随时调用.因此,即使下次该事件触发不是因为FB.init()的响应,您的回调仍将在此时被调用.

如果在调用Facebook.init()之前为“auth.sessionChange”设置自己的处理程序,并将“cookie”设置为true,那么在创建cookie之后,您将在调用init后立即触发sessionChange事件.虽然因为GET永远不会得到响应,但仍然没有调用Init的回调.

Facebook.addJSEventListener("auth.sessionChange",onSessionChange);
Facebook.init(_appID,onInitFacebookConnect,{cookie: true,appId: _appID,perms: "user_birthday,read_stream,publish_stream"});

您可以在该教程中找到的示例可以使用,但不是您实际将应用程序放在一起时要使用的示例.否则,您总是要单击按钮来触发fbconnect.看起来oauth2将成为获得所需行为的方式,每次“连接”时都不需要点击按钮.您可以从oauth2获取sessionkey,然后使用Flash / Facebook GRAPHSDK或JS,具体取决于您尝试执行的操作.

这可能有所帮助:
http://blog.yoz.sk/2010/05/facebook-graph-api-and-oauth-2-and-flash/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读