我需要访问用户的区域设置,然后才能请求他们的任何权限。这通常在getSignedRequest中可用,但是当我直接查看应用程序而不是在页面选项卡中时,它看起来是NULL。所以当我转到apps.facebook.com/myapp/
时它是NULL,但是当我通过像www.facebook.com/pages/mypage/pageid?sk=appid
这样的页面查看它时,它具有正确的值。这是一个错误还是预期的行为?当我无法通过页面访问应用程序时,是否必须使用其他方法?
答案 0 :(得分:4)
根据我的记忆,在Facebook上,签名请求只会在您标签的第一页上提供 - 例如。的index.php。
从这里开始,您需要存储检索到的值,并根据需要从本地存储或会话中访问它们。
此外,如果您直接查看该应用程序,它将根本不可用。您必须通过Facebook查看此方法才能使用此方法。不幸的是,如果您希望在页面选项卡之外使用此信息,则必须先请求权限。
祝你好运!答案 1 :(得分:1)
对签名请求使用$ _REQUEST [“signed_request”]而不是使用函数
$dd = parse_signed_request($_REQUEST["signed_request"]);
//解析函数 function parse_signed_request($ signed_request) { list($ encoded_sig,$ payload)= explode('。',$ signed_request,2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
return $data;
}
function base64_url_decode($input)
{
return base64_decode(strtr($input, '-_', '+/'));
}