3

我正在通过 Canvas 开发 Facebook 中包含的游戏应用程序。该游戏由几个独立于顺序的“级别”组成,每个级别都与数据库中的条目相关。打个比方,你可以把它想象成类似于hangman,因为游戏每次都是一样的,但内容不同(对于hangman,就是猜的词)。

当用户玩一个关卡时,我通过 OpenGraph API 创建一个故事。例如,假设 Bob 玩 Alpha 关卡,他的朋友 Sue 看到他的 feed 故事,上面写着“Bob 在 SomeGame 中玩了 Alpha”。我想要那个故事中的一个链接,让 Sue 直接进入 SomeGame 中的“Alpha”关卡,而不是游戏中用户可以选择关卡的通用入口点(即,当你点击 Canvas URL 时通常会发生什么)。看来您可以使用参数,如下所示:

apps.facebook.com/somegame?level_id=1234,

然后在您的 Canvas URL 端点中,您可以根据这些参数进行重定向。但这是处理这个问题的首选方法吗?

另外,如果 Feed 中的故事标题是“Bob 在 SomeGame 中玩了 Alpha”,我希望“Alpha”上的链接可以让 Sue 玩“Alpha”,但据我所知,该链接是由 og 生成的:url 在对象元数据中,这意味着它必须链接到

www.somegame.com/level/:id,而不是

apps.facebook.com/somegame?context_params=some_stuff。

但我真的不想让人参观

www.somegame.com/level/:id

直接 - 我希望他们留在 Facebook 内,并在 Canvas 托管的应用程序中查看它。

如果我给予,我可以获得我想要的行为

www.somegame.com/level/:id

一个 javascript 重定向,它使用级别 id 的参数:

(top.location.href="http://apps.facebook.com/somegame?level_id=1234)

然而,这似乎是一个 hack,我希望有一种更简洁的方法来做到这一点,而不需要浏览器驱动的重定向。谢谢!

4

0 回答 0