gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:27:30 25 4
gpt4 key购买 nike

我打电话 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,您会看到整个 javascript block (即 FBJSBridge.js)被附加到 com.facebook.graph.Facebook.as 的构造函数中的 ExternalInterface 上。

我整天都在为这个问题苦苦挣扎。我一直在观察由 Facebook.init() 生成的 http GET,看起来它只是在等待超时,此时会生成另一个 GET。它永远不会正常回来。我尝试了其中的 APPID、APIKEY 以及各种参数组合,但我再也没有看到它回来。我必须得出结论,这就是它的工作原理。如果没有,那么它就是这样工作的。 :-/

无论如何,您会在 FacebookJSBridge.as 中的那个 JS block 中看到 FBAS 内部,因为 init 订阅了触发 Facebook.handleSessionChange() 的“auth.sessionChange”事件。您可以看到那是您的回调被调用的地方。诀窍在于,这就是 sessionChanges 随时调用的内容。因此,即使下次事件触发不是因为来自 FB.init() 的响应,您的回调仍会在此时被调用。

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

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

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

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

关于apache-flex - 为什么 Facebook Actionscript API init() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com