如何在我的网站中加入Facebook登录?

时间:2011-04-19 22:46:28

标签: php facebook web login

即时尝试将“使用Facebook登录”机会导入我的网站,我正在使用http://developers.facebook.com/docs/authentication,但仍无法使其正常运行。 我注册我的网站,并有app id和app secret。 我的登录表单中包含以下代码:

 <a href="facebook.php"><img src="images/fb-login-button.png" /></a>

facebook.php文件:

<?php 

$app_id = 1000000000000;
$app_secret = "asdasdasdasd";
$my_url = "http://xxxx.xx/";

$code = $_REQUEST["code"];

if(empty($code)) {
    $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($my_url);

    echo("<script> top.location.href='" . $dialog_url . "'</script>");
}

$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
    . $app_id . "&redirect_uri=" . urlencode($my_url) . "&client_secret="
    . $app_secret . "&code=" . $code;

$access_token = file_get_contents($token_url);

$graph_url = "https://graph.facebook.com/me?" . $access_token;

$user = json_decode(file_get_contents($graph_url));

echo("Hello " . $user->name);
?>

它返回消息“未定义的索引代码”,我不知道在哪里以及要改变什么。

请帮忙!

1 个答案:

答案 0 :(得分:3)

您收到的错误是告诉您在请求中要查找的“代码”参数:

  

$ code = $ _REQUEST [“code”];

未提交..例如你需要将“代码”发布到页面或使用facebook.php通过GET传递吗?code = something

为避免在未发送参数“code”时遇到错误,您的代码可能如下所示:

if(!isset( $_REQUEST["code"] ) ) {
    $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($my_url);

    echo("<script> top.location.href='" . $dialog_url . "'</script>");
} else {
    $code = $_REQUEST["code"];
}

希望有所帮助..