如何从Facebook应用程序获取顶级URL?

时间:2011-02-24 16:26:40

标签: php jquery facebook iframe

如何在iframe应用程序中获取顶级URL(Facebook的地址)?

有没有一个很好的解决方案?

4 个答案:

答案 0 :(得分:4)

你的意思是Facebook域名上的网址?

由于Same Origin Policy,这是不可能的。

答案 1 :(得分:1)

你可以从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。

答案 2 :(得分:1)

https://www.facebook.com/pages/YOUR_PAGE_NAME/YOUR_PAGE_ID?sk=app_APP_ID&app_data=My%20custom%20data

您可以通过app_data参数传递任何字符串数据

答案 3 :(得分:-1)

如果你可以等待第一次加载,你可以使用jQuery:

$(document).ready(function()
{
    var myurl = window.location.pathname;
    $.get("test.php", { url: myurl } );
});