Как включить логин Facebook на моем сайте? - PullRequest
3 голосов
/ 20 апреля 2011

Я пытаюсь импортировать возможность «войти с Facebook» на мой сайт, я использую http://developers.facebook.com/docs/authentication,, но все равно не могу заставить его работать.Я регистрирую свой веб-сайт и у меня есть идентификатор приложения и секрет приложения.У меня есть следующий код в форме входа в систему:

 <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 Ответ

3 голосов
/ 20 апреля 2011

Полученная ошибка говорит о том, что параметр «code», который вы ищете в запросе:

$ code = $ _REQUEST ["code"];

не отправляется .. Например, вам нужно либо опубликовать «код» на странице, либо передать его через GET, используя facebook.php? 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"];
}

Надеюсь, это поможет ..

...