【发布时间】:2011-02-24 16:26:39
【问题描述】:
如何在 iframe 应用程序中获取顶部 URL(Facebook 的地址)?
有没有好的解决方案?
【问题讨论】:
标签: php jquery facebook iframe
如何在 iframe 应用程序中获取顶部 URL(Facebook 的地址)?
有没有好的解决方案?
【问题讨论】:
标签: php jquery facebook iframe
您是指 Facebook 域上的 URL?
由于Same Origin Policy,这是不可能的。
【讨论】:
$_SERVER["HTTP_REFERER"] 标头中 - 至少在大多数客户端中 - 您可以在 PHP 中获取和输出
您可能可以从 Facebook 发送给页面内加载的应用程序的“signed_request”POST 参数中弄清楚这一点。
在 PHP 中是:
$_POST["signed_request"]
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
$page_id = $data["page"]["id"];
如果您想防止技术用户能够欺骗父页面的身份,您可以验证 $encoded_sig;然而,这可能有点矫枉过正。
$page_id 只是一个数字,因此您需要使用其他 Facebook API(或调用“http://www.facebook.com/pages/k/$page_id”并查看您的位置)重新重定向到)以获取完整的 URL。
【讨论】:
https://www.facebook.com/pages/YOUR_PAGE_NAME/YOUR_PAGE_ID?sk=app_APP_ID&app_data=My%20custom%20data
你可以通过app_data参数传递任何字符串数据
【讨论】:
如果你可以等待第一次加载,你可以使用jQuery:
$(document).ready(function()
{
var myurl = window.location.pathname;
$.get("test.php", { url: myurl } );
});
【讨论】: