我已经设置了一个Facebook应用,并将其添加为我的粉丝页面上的标签。
以用户身份登录并请求应用页面的直接网址,向我展示了一切正确的信息。
然而,当我没有登录@facebook并且我转到直接URL时,应用页面上没有显示任何内容。它只是在画布上显示白色背景,最大高度为100px。
我可以自然地从该页面登录,在从登录回调后,我再次正常看到应用程序页面。
我认为它可能与我的代码有关。但后来我测试删除了我的index.php文件中的所有内容,只添加了一些静态虚拟文本。仍然没有出现。
有什么想法吗?
编辑1: 我认为这可能与我将应用程序画布定义的URL请求重定向到https有关。我在其他地方读到,Facebook也可能出于某种原因需要访问同一URL的http。但是还没有找到任何支持它的东西。
编辑2: 看到我甚至无法获得带有静态文本的空白index.php的任何内容我不确定这是否可能与它有关。但是打开我的整个脚本的错误,我得到了$ signed_request的一些错误 - 猜测因为我在无法检索它时调用它。不知道该怎么办,但无论如何都要发布代码以防有人看到任何东西。
function parsePageSignedRequest() {
if (isset($_REQUEST['signed_request'])) {
$encoded_sig = null;
$payload = null;
list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
$sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
$data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
return $data;
}
return false;
}
if($signed_request = parsePageSignedRequest()) {
if($signed_request->page->liked) {
//echo "This content is for Fans only!";
$amFan = "true";
} else {
//echo "Please click on the Like button to view this tab!";
$amFan = "false";
}
}
答案 0 :(得分:0)
当用户根本没有登录时是否有signed_request?
如果没有,您的代码在parsePageSignedrequest()
中返回false并完全跳过$amFan
的设置 - 其余代码是否适用于该情况?