Авторизация Facebook приводит к циклу перенаправления

Я использую код холста приложения Facebook в документации, и он продолжает перенаправляться после того, как я нажму «разрешить». Не уверен, что не так. Проверьте, баг ли это или это только у меня так. Это взято с http://developers.facebook.com/docs/appsonfacebook/tutorial/.

<?php 

 $app_id = ""; //Added my app id

 $canvas_page = ""; //Added my canvas page

 $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page);

 $signed_request = $_REQUEST["signed_request"];

 list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

 $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

 if (empty($data["user_id"])) {
        echo("<script> top.location.href='" . $auth_url . "'</script>");
 } else {
        echo ("Welcome User: " . $data["user_id"]);
 } 
?>

person pal4life    schedule 16.02.2012    source источник


Ответы (1)


я рекомендую использовать php Sdk, это упрощает вам задачу, и код для входа в систему будет таким:

<?php
include_once('src/facebook.php');
$config = array(
    'appId' => 'xxxxxxxxxxxx',
    'secret' => 'xxxxxxxxxxxxxxxx',
    'fileUpload' => FALSE, // optional
  );
$canvas_page = ""; //Added my canvas page

 $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page);

$uid=$facebook->getuser();
if(empty($uid)){ echo("<script> top.location.href='" . $auth_url . "'</script>");}
else { echo ("Welcome User: " . $uid);}
person Pooya Estakhri    schedule 17.02.2012
comment
Привет, извините меня, но использование этого кода дает мне следующую ошибку Неустранимая ошибка: вызов функции-члена getuser() для не-объекта в mycodeurl здесь, в строке 12. У меня есть файлы facebook, включенные в src - person pal4life; 17.02.2012
comment
Я исправил этот код на основе примера Php sdk на github Facebook, и теперь он загружает мое приложение за пределами страницы холста, а не на странице холста. - person pal4life; 17.02.2012
comment
вы должны установить $canvas_page в качестве страницы вашего приложения в Facebook. >; - person Pooya Estakhri; 18.02.2012