这很奇怪,因为在我的facebook应用程序的画布页面上,我得到了关于我的auth_token的所有这些php错误,然后它重定向并按预期工作。有人可以帮我解决这个问题吗?下面是我在页面顶部的PHP代码:
$app_id = "181247432419054";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$my_url = "https://apps.facebook.com/wellnessq/";
session_register();
session_start();
if (!isset($_REQUEST["code"]))
{
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
$dialog_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url) . "&scope=email&state="
. $_SESSION['state'];
echo("<script> top.location.href='" . $dialog_url . "'</script>");
}
$code = $_REQUEST['code'];
{
$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret . "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$graph_url = "https://graph.facebook.com/me?access_token="
. $params['access_token'];
$user = json_decode(file_get_contents($graph_url));
}
?>
第一条错误消息从$ code = $ _REQUEST ['code']开始;接下来是几个。我无法发布屏幕截图,因为我的声望点太少= / grrr但是这里是错误消息:
注意:未定义的索引:D:\ Extranet \ www.mysite.com \ manager \ here \ core.functions.php(663)中的代码:第19行的eval()代码
警告:file_get_contents(https://graph.facebook.com/oauth/access_token?client_id=181247432419054&redirect_uri=https%3A%2F%2Fapps.facebook.com%2Fwellnessq%2F&client_secret=xxxxxxxxxxxxxxxxx&code=) [function.file-get-contents]:无法打开流:HTTP请求失败! D / \ Extranet \ www.mysite.com \ manager \ here \ core.functions.php(663)中的HTTP / 1.0 400错误请求:第25行的eval()代码
注意:未定义的索引:D:\ Extranet \ www.mysite.com \ manager \ here \ core.functions.php(663)中的access_token:第30行的eval()代码
警告:file_get_contents(https://graph.facebook.com/me?access_token=)[function.file-get-contents]:无法打开流:HTTP请求失败! D:\ Extranet \ www.mysite.com \ manager \ here \ core.functions.php(663)中的HTTP / 1.0 400错误请求:第32行的eval()代码
谢谢!
答案 0 :(得分:0)
您需要在回显exit;
标记后立即添加<script>
语句。我在很多Facebook示例代码中都注意到了这种疏忽。通常它不会引起太多问题,但是一旦确定需要重定向,就应确保停止执行其他操作并为浏览器提供时间来处理重定向脚本。