【发布时间】:2011-04-15 14:40:54
【问题描述】:
首先为这个问题的长度道歉,并询问 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 令牌中都没有收到有用的信息,而位于 apps.facebook.com 上的 RIA 则在请求标头中获取我需要的所有信息。
简而言之,我需要最简单、最直接的方法从 Facebook 产品页面选项卡中制作 Facebook 墙贴,无论是使用 FMBL、FBJS、ActionScript 3、ASP 还是它们的任何组合。
我见过这个:https://stackoverflow.com/questions/3674923/facebook-share-or-publish-dialogue-from-page-tab-closed 这确实是我要问的同一个问题,但答案不清楚,而且似乎不能解决我的问题。
【问题讨论】:
标签: facebook actionscript-3 fbml fbjs