Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从Facebook应用程序中获取顶级URL?_Php_Jquery_Facebook_Iframe - Fatal编程技术网

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

Php 如何从Facebook应用程序中获取顶级URL?,php,jquery,facebook,iframe,Php,Jquery,Facebook,Iframe,如何在iframe应用程序中获取顶级URL(Facebook地址) 有好的解决办法吗?你是说Facebook域名上的URL 这是不可能的,因为 你是说Facebook域名上的URL 这是不可能的,因为 如果可以等待第一次加载,可以使用jQuery: $(document).ready(function() { var myurl = window.location.pathname; $.get("test.php", { url: myurl } ); }); 如果可以等待第

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


有好的解决办法吗?

你是说Facebook域名上的URL


这是不可能的,因为

你是说Facebook域名上的URL


这是不可能的,因为

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

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

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

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

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

您可能可以从Facebook发送到页面中加载的应用程序的“signed_request”POST参数中找到这一点

https://www.facebook.com/pages/YOUR_PAGE_NAME/YOUR_PAGE_ID?sk=app_APP_ID&app_data=My%20custom%20data
在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参数传递任何字符串数据


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

我的意思是,如何从iframe所在的页面获取url。如果你明白;-)@Simon您是指iframe的URL还是包含iframe的页面的URL?@Pekka包含iframe的页面的URL:)同源策略仍然适用。@Simon抱歉,不可能。您将无法从父帧获取任何信息。URL将位于
$\u服务器[“HTTP\u REFERER”]
标题中,但至少在大多数客户机中,您可以在PHPI中获取和输出URL,这只是指如何从iframe所在的页面获取URL。如果你明白;-)@Simon您是指iframe的URL还是包含iframe的页面的URL?@Pekka包含iframe的页面的URL:)同源策略仍然适用。@Simon抱歉,不可能。您将无法从父帧获取任何信息。URL将位于
$\u服务器[“HTTP\u REFERER”]
头中,但至少在大多数客户机中,您可以在PHP中获取和输出URL