我打电话     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(选项));

所需要的两个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的整个块是FBJSBridge.js就是附加到在com.facebook.graph.Facebook.as的构造ExternalInterface的。

我一直在这个整天挣扎。我一直在看的HTTP GET通过Facebook.init(生成),它看起来像它只是等待,直到超时,这时另一GET被催生。它永远不会回来正常。我试过APPID,在那里APIKEY和所有种类的参数组合,但我从来没有看到它回来。我不得不得出结论,是它的意思是如何工作。如果没有,那么这是怎么做的工作。 : - /

总之,你会内部FBAS看到在JS块在初始化订阅该“auth.sessionChange”事件触发Facebook.handleSessionChange()FacebookJSBridge.as。你可以看到,是你的回调被调用。诀窍是,这就是被称为随时随地的sessionChanges。所以,即使下一次事件触发是因为从FB.init(),您的回调仍然会得到在该点称为响应的不是。

如果您设置自己的处理程序“auth.sessionChange”你所拨打Facebook.init()之前,你设置的“cookie”为true,那么后一个cookie被创建,你会得到一个sessionChange事件后,你的权利射击调用初始化。初始化的回调仍然不会被调用,虽然因为GET从来没有得到响应。

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的图表-API和 - 的OAuth -2-和闪光/

其他提示

有似乎可以解释为什么这个失败多种原因。看到这些链接:

http://code.google.com/ p / Facebook的动作的API /问题/细节?ID = 165

http://www.pastrytech.com/willy/FacebookActionScript3SDKExample.html

对我来说是脚本标签的顺序是错误的包装文件土坯教程提供。

确保Facebook的JS库之前SWFObject的加入。即确保你的脚本标签顺序如下:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>

替换

embedSWF("MyApp.swf", "flashContent", "640", "480", "9.0", null, null, null, {name:"flashContent"});    

swfobject.embedSWF("MyApp.swf", "flashContent", "640", "480", "9.0", null, null, null, {name:"flashContent"});  

即。的 SWFObject的。的embedSWF

工作就像一个魅力!

在我的情况下,它是没有工作的index.template.html。我需要: 1)到FB JS SDK结果,基准 2)使用FB-根DIV作为身体标记中的第一个条目

这解决了我的问题。

编辑:我感到困惑的是Facebook.init()只能当用户登录对于身份验证我请Facebook.login

EDIT2:重新认识这件事情。这一次我错过了,如果不是当然的呼叫转到另一个页面,你从来没有收到回应画布URL需要重新指向到您的网页。很明显,但是它打我......

似乎FBAS.getSwf()使用的名称的在其呼吁document.getElementById的SWF。

所以,如果你指定一个ID,但不是一个名字,然后FacebookJSBridge.as的JavaScript查找与空的id的元素。

或者,如果你指定一个名称,但不是一个ID,然后FacebookJSBridge.as的JavaScript会寻找适当的字符串,但没有这样的标识的元素存在。

如果你指定一个名字和相同的ID,那么它实际上可以找到瑞士法郎。


var appId = "1234567890";

var swfNameAndId = "app_" + appId;

swfobject.embedSWF("/swfs/TestApp.swf", "app_placeholder", 760, 450, "9.0.0", false, { "appId": appId }, { "allowscriptaccess": "always" }, { "name": swfNameAndId, "id": swfNameAndId });
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top