验证令牌facebook php错误

时间:2011-10-05 21:25:52

标签: facebook token authentication auth-token

这很奇怪,因为在我的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()代码

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要在回显exit;标记后立即添加<script>语句。我在很多Facebook示例代码中都注意到了这种疏忽。通常它不会引起太多问题,但是一旦确定需要重定向,就应确保停止执行其他操作并为浏览器提供时间来处理重定向脚本。