如何在iframe应用程序中获取顶级URL(Facebook的地址)?
有没有一个很好的解决方案?
答案 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 } );
});