Facebook php Oauth не работает - PullRequest
3 голосов
/ 03 октября 2011

Я новичок в приложениях Facebook и PHP в целом, и у меня есть небольшая проблема.Я не могу заставить OAuth правильно работать с моим приложением.Когда вы запускаете само приложение, оно не перенаправляется в диалог oAuth.Он просто отображает пустую страницу, которая ничего не делает.Если кто-то может помочь мне с этим, мне действительно нужно это, ха-ха.Спасибо!Пока что мой код выглядит следующим образом:

<?php

   include_once ('santatree/facebook.php');


   $app_id = '276853929000834';
   $application_secret = 'e3a12b11221f3fef1e06952e15fdc8e4';

   $facebook = new Facebook(array(
  'appId'  => $app_id,
  'secret' => $application_secret,
  'cookie' => true, // enable optional cookie support
));
?><?
if ($facebook->getSession())  
 {  
  $user = $facebook->getUser();  
 }  
else  
  {  
  $loginUrl = "https://www.facebook.com/dialog/oauth?    type=user_agent&display=page&client_id=276853929000834 
   &redirect_uri=http://apps.facebook.com/digitalsanta/&scope=user_photos";  
  header("Location: https://www.facebook.com/dialog/oauth?        type=user_agent&display=page&client_id=276853929000834         &redirect_uri=http://apps.facebook.com/digitalsanta/ &scope=user_photos");
  echo '';  
  }  

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Я делаю перенаправления на основе токена сеанса.

Предполагается, что вы будете использовать самую последнюю версию php-sdk 3.1.1, и в настройках вашего приложения будет включен Oauth2.

ОБРАЗЕЦ ЗДЕСЬ: URL логина / выхода находится в нижнем колонтитуле плагина. http://apps.facebook.com/anotherfeed/TimeLineFeed.php?ref=facebook-stackoverflow


<?php
require './src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => '',
  'secret' => '',
));
$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) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}
$access_token = $_SESSION['fb_135669679827333_access_token'];
if (!$access_token) {
echo '<script>';
echo 'top.location.href = "'.loginUrl.'";';
echo '</script>';
} else {
echo '<a href="'.logoutUrl.'">Logout</a>';
}
?>

https://developers.facebook.com/apps для редактирования вашего приложения.

  • Если у вас нет приложения, вам нужно его создать.
  • Вам также потребуется настроить холст и защищенные URL-адреса холста, чтобы избежать ошибок.

enter image description here

1 голос
/ 03 октября 2011

Вы только определили переменную $loginUrl, но вы не перенаправили пользователя для перехода на URL.Попробуйте использовать

header("Location: $loginUrl");

для пересылки вашего пользователя, если вы еще не отправили свой заголовок.

...