5

首先为这个问题的长度道歉,并询问 Facebook API(似乎是世界上最不一致的 API 之一......)。

情况:我们正在为我们的客户制作一个 Facebook 产品“社区”类型的页面,其中包含标准的 Facebook 标签,其中一个嵌入了 Flash 游戏。在游戏结束时,我们希望能够通过墙贴分享用户的最终得分,并邀请朋友挑战得分。

首先 - 客户坚持让游戏出现在页面内的选项卡上,因此将这一切都移至应用程序(例如,apps.facebook.com)很遗憾不是一个选择。我知道您可以在选项卡上嵌入应用程序而不是静态 FMBL,但我已经尝试过,结果基本相同或失败(选项卡对可以呈现的内容施加严格限制,强制使用 FBML 并否定FB:Iframe初学者的标签)。

目前我们将此游戏嵌入到静态 FBML 选项卡上,使用fb:swf标记和 FBJS-bridge 来启用选项卡上的一些简单交互(导航到新窗口等)。我们还尝试了 FBJS 嵌入方法,将游戏制作成应用程序并将其添加为页面上的选项卡。在所有情况下,似乎都无法在选项卡环境中获取查看用户的 UID(尽管他们必须首先登录才能查看页面)。游戏本身是 Flash ActionScript 3,我可以选择使用 Facebook ActionScript 3 API。使用这种方法,到目前为止我设法提出的最佳过程概述如下:

0)创建一个单独的应用程序,其唯一目的是处理分数共享等。

1) 用户在游戏结束时点击 TAB 页面上的“分享我的分数”。

2) SWF通过打开一个新选项卡执行标准 Facebook 的“登录到应用程序”请求。

3) 用户确认此操作并关闭新窗口。

4) 用户在 Flash 游戏中再次单击以确认他们已登录。

5) SWF 执行facbook.verifySession()并打开另一个窗口,请求允许在用户的墙上张贴。

6) 用户确认这一点并再次被带回游戏。

7) SWF 监听“FacebookEvent.PERMISSIONS_CHANGED”并在确认后发布到墙上。

由于无法验证用户在加载选项卡时是否添加了应用程序,因此他们可能每次想要发布游戏结果时都必须遵循此过程,这很可怕。主要问题似乎是,驻留在 Facebook 选项卡上的任何RIA在该选项卡的 OAuth 令牌中都没有收到有用的信息,这与 RIA 相比,apps.facebook.com它可以在请求标头中获取我需要的所有信息。

简而言之,我需要最简单、最直接的方法从 Facebook 产品页面选项卡中制作 Facebook 墙贴,无论是使用 FMBL、FBJS、ActionScript 3、ASP 还是它们的任何组合。

我已经看到了:https ://stackoverflow.com/questions/3674923/facebook-share-or-publish-dialogue-from-page-tab-closed这确实是我要问的同一个问题,但答案是不清楚,而且似乎不能解决我的问题。

4

2 回答 2

1

FB 选项卡应用程序 SWF 在 flashvars 中接收会话密钥,可以将其交换为 oauth 令牌!http://fraserhobbs.com/2010/07/flash-facebook-graph-api-in-tabs/真的帮助了我。

于 2010-10-27T17:18:53.567 回答
0

使用<fb:share>标签将为您完成所有这些工作。如果您没有登录并点击<fb:share>链接,它会要求您登录,如果您还没有接受申请,它会要求您接受,然后将您想要的内容发布到他们的墙上。我已经在我的网站上这样做了,以共享产品而不是游戏分数,但它可以完全一样。

编辑:

查看用于发布的 Graph API。如果您使用的是 Flash,我建议您使用Facebook Flash SDK

于 2010-09-23T17:51:44.290 回答