访问iFrame中的请求变量

时间:2011-07-20 13:48:09

标签: facebook-graph-api facebook

我正在尝试建立一个多人游戏作为Facebook应用程序,所以,在这里,我给一个玩家一个链接,他与他的朋友分享,以便他们可以一起玩, FB apps链接属于网址类型

https://apps.facebook.com/app-name/

说别人分享链接

https://apps.facebook.com/app-name/?game=key

现在出现了真正的问题,当前作为iframe运行的应用程序将如何访问父Windows游戏变量?

3 个答案:

答案 0 :(得分:1)

您必须使用app_data参数。看看这些链接:

因此,基本上,app_data参数将在signed_request中传递到iFrame中的应用。为此,您必须对参数进行json_encode。因此,在您的示例中:

http://apps.facebook.com/my-app/?app_data={'game': 'key'}

最后是url编码:

http://apps.facebook.com/my-app/?app_data=7B%27game%27%3A+%27key%27%7D

要获得访问权限,您必须读出signed_request(使用PHP的示例):

$app_data = json_decode($signed_request["app_data"]);
$additional = $app_data['additional'];

答案 1 :(得分:0)

基本上不是使用问号而只是将其添加到网址:

https://apps.facebook.com/app-name/game/key

只需确保将应用设置为处理以下内容:

https://yourdomain.com/canvas-url/game/key

我在一个重复的问题上发布了一个更深入的问题答案:

$_GET on facebook iframe app

答案 2 :(得分:0)

我遇到了同样的问题,答案非常简单:

https://apps.facebook.com/app-name/?myvalue=12

在页面应用上,您只能使用" app_data"作为参数,但在Canvas应用程序中,您只需使用自己的参数,就可以使用$ _REQUEST [' myvalue']或$ _GET [' myvalue']来获取它们:

array(2) { ["myvalue"]=> string(2) "12" ["signed_request"]=> string(427) "..." }