【问题标题】:$_GET on facebook iframe appfacebook iframe 应用上的 $_GET
【发布时间】:2011-09-14 10:32:01
【问题描述】:

我试图在我的 iframe facebook 应用程序上使用 GET 方法传递一些数据,但页面内部没有数据,我的代码是

<?php 

echo '<pre>';
print_r($_GET);
die()
?> 

并尝试像 apps.facebook.com/APPNAME/?p=23 一样通过 或apps.facebook.com/APPNAME/index.php?p=23

【问题讨论】:

  • 这是整个页面的代码吗?听起来可能有一些重定向正在丢失查询字符串。

标签: facebook iframe


【解决方案1】:

您可以直接将变量传递到 iframe,您需要签名请求中的 app_data。看看这些类似的问题和答案:

【讨论】:

  • 这是您想要的方式。使用app_data 参数并定义一个对象,以便您可以将更多内容解析到应用程序中。这是 Facebook 识别的唯一参数。您的 URL 将如下所示:apps.facebook.com/APPNAME/?app_data={"this":"is","transfered":"toFacebook"}
【解决方案2】:

忘记其他海报所说的话。普通画布应用程序不接受 app_data 参数,只有选项卡应用程序接受。但是除了画布 URL 之外,您还可以使用自定义 URL。让我告诉你这是如何工作的。

我的应用:

我有一个名为 PulseTrack 的应用程序。主应用网址是:

http://apps.facebook.com/pulsetrack/

指向此画布 URL:

http://mydomain.com/pulsetrack/

但我也可以使用这个网址:

http://apps.facebook.com/pulsetrack/watch/EP011583610051

哪个指向:

http://mydomain.com/pulsetrack/watch/EP011583610051

您的应用

如果您可以像这样设置您的画布 URL,请直接使用 PHP:

http://yourdomain.com/index.php?

然后您可以将目录参数传递到 URL 的末尾,如下所示:

http://apps.facebook.com/your-app/your/awesome/params

你会这样想:

http://yourdomain.com/index.php?/your/awesome/params

这样的东西应该能够从查询字符串中解析那些“参数”

$query = $_SERVER['QUERY_STRING'];
$params = explode("/", $query);

祝你好运,我花了很长时间才弄清楚。

【讨论】:

    【解决方案3】:

    您可以照常传入参数。 Facebook 会在加载 iframe 时将其附加到 URL,因此理论上您所做的应该是有效的。 Facebook 在 iframe 中加载时实际上会执行 HTTP POST,但是资源将包含您在 PHP 中指定的查询字符串,因此应填写 $_GET。您究竟是如何传递参数的?给我们一个包含链接的代码示例。

    【讨论】:

    • 我试图访问像apps.facebook.com/appname/index.php?page=2 这样的页面,当我 print_r($_GET) 时它是空白的。
    • 我也试过了,还是不行。我可以在我的应用程序的设置中添加我列出 url "?myparam=1234" 但我想要的是将它写在 URL 中。
    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2015-07-19
    • 1970-01-01
    相关资源
    最近更新 更多