2013-03-24 2 views
0

Я в полном беспорядке с facebook-login. Код приведен ниже. Вы можете видеть вывод на http://beta.jokesnfunnypics.com/login. В области, которую я дал как электронную почту, но когда я нажимаю ссылку и перенаправляется на facebook, в ней говорится, что приложение запрашивает только основные разрешения. Более того, я упомянул redirect_uri как http://beta.jokesnfunnypics.com/add, но вместо этого я перенаправлен на ту же страницу. Более того, после получения разрешения на странице не отображается информация. Пожалуйста, помогите мне. Я готов дать несколько долларов тому, кто дает мне правильный код.Facebook login - php sdk - prob

<?php 
//Application Configurations 
$app_id  = "XXXXXXXXXX"; 
$app_secret = "XXXXXXXXXXXXX"; 
$site_url = "http://www.beta.jokesnfunnypics.com/add"; 

try{ 
     include_once "src/facebook.php"; 
}catch(Exception $e){ 
     error_log($e); 
} 
// Create our application instance 
$facebook = new Facebook(array(
    'appId'  => $app_id, 
'secret' => $app_secret, 
)); 

// Get User ID 
$user = $facebook->getUser(); 


if($user){ 
try{ 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
}catch(FacebookApiException $e){ 
    error_log($e); 
    $user = NULL; 
} 

} 

if($user){ 
    // Get logout URL 
$logoutUrl = $facebook->getLogoutUrl(); 
}else{ 
// Get login URL 
$loginUrl = $facebook->getLoginUrl(array(
    'scope'  => 'email', 
    'redirect_uri' => $site_url, 
    )); 
} 


if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 


?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <head> 
    <title>php-sdk</title> 
    </head> 
    <body> 
    <h1>php-sdk</h1> 

    <?php if ($user): ?> 

     <a href="<?php echo $logoutUrl; ?>">Logout</a> 
    <?php else: ?> 
     <div> 
     Login using OAuth 2.0 handled by the PHP SDK: 
     <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
     </div> 
    <?php endif ?> 

    <h3>PHP Session</h3> 
    <pre><?php print_r($_SESSION); ?></pre> 

    <?php if ($user): ?> 
    <h3>You</h3> 
$_SESSION['user']="abc; 
    <img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> 

    <h3>Your User Object (/me)</h3> 
    <pre><?php print_r($user_profile); ?></pre> 
<?php else: ?> 
    <strong><em>You are not Connected.</em></strong> 
<?php endif ?> 

<h3>Public profile of Naitik</h3> 
<img src="https://graph.facebook.com/naitik/picture"> 
<?php echo $naitik['name']; ?> 
    </body> 
</html> 
+0

Прежде всего, не пишите личные данные секретности приложения. Он должен быть секретным –

+0

thanx для редактирования –

+0

Я пытаюсь использовать тот же код, что и ваш, и он работает нормально. Используете ли вы последнюю версию SDK, потому что ваш URL-адрес для входа также не имеет параметра области для электронной почты? –

ответ

0

Ну обычно я не использую PHP SDK для создания моего входа в URL, вместо этого я сделать это вручную, попробуйте изменить эту строку:

<a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 

Для этого:

<a href="https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=http://beta.jokesnfunnypics.com/add&scope=email">Login with Facebook</a> 
+0

Thanx..Но до сих пор информация не отображается .. :( –

+0

Но теперь уже просят электронной почты, теперь вам нужно использовать код, который передается как параметр get, на http://beta.jokesnfunnypics.com/добавить и извлечь токен для пользователя –

1

Из кода переменная $ loginUrl определена 2 раза, область видимости и redirect_uri отсутствует во второй раз. попробуйте удалить эти строки из вашего кода

<?php 
$app_id  = "XXXXXXXXXX"; 
$app_secret = "XXXXXXXXXXXXX"; 
$site_url = "http://www.beta.jokesnfunnypics.com/add"; 

try{ 
    include_once "src/facebook.php"; 
}catch(Exception $e){ 
    error_log($e); 
} 
// Create our application instance 
$facebook = new Facebook(array(
'appId'  => $app_id, 
'secret' => $app_secret, 
)); 

// Get User ID 
$user = $facebook->getUser(); 

if($user){ 
try{ 
// Proceed knowing you have a logged in user who's authenticated. 
$user_profile = $facebook->api('/me'); 
}catch(FacebookApiException $e){ 
error_log($e); 
$user = NULL; 
} 

} 

if($user){ 
// Get logout URL 
$logoutUrl = $facebook->getLogoutUrl(); 
}else{ 
// Get login URL 
$loginUrl = $facebook->getLoginUrl(array(
'scope'  => 'email', 
'redirect_uri' => $site_url, 
)); 
} 
?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<title>php-sdk</title> 
</head> 
<body> 
<h1>php-sdk</h1> 

<?php if ($user): ?> 

    <a href="<?php echo $logoutUrl; ?>">Logout</a> 
<?php else: ?> 
    <div> 
    Login using OAuth 2.0 handled by the PHP SDK: 
    <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
    </div> 
<?php endif ?> 

<h3>PHP Session</h3> 
<pre><?php print_r($_SESSION); ?></pre> 

<?php if ($user): ?> 
    <h3>You</h3> 
$_SESSION['user']="abc"; 
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> 
<h3>Your User Object (/me)</h3> 
<pre><?php print_r($user_profile); ?></pre> 
<?php else: ?> 
<strong><em>You are not Connected.</em></strong> 
<?php endif ?> 

    <h3>Public profile of Naitik</h3> 
    <img src="https://graph.facebook.com/naitik/picture"> 
    <?php echo $naitik['name']; ?> 
    </body> 
    </html> 

См. следующие руководства.

Login with Facebook using PHP SDK

Login with facebook using PHP (Demo and Download)

0

Правильный код в PHP - 3 шага в 1 форме - объясняется iZend - Веб двигатель, включая конфигурацию на Facebook: http://www.izend.org/en/identification-by-facebook.

  1. Открытие подключения к Facebook с помощью SDK.
  2. Получение URL-адреса для подключения к кнопке Facebook.
  3. Извлечение адреса электронной почты подключенного пользователя (и другая информация, например, имя и фамилия для формы регистра).