Переходя через Facebook API, я немного запутался в правильном подходе.Я хочу, чтобы пользователи пропустили регистрацию или автоматически зарегистрировали их, если они войдут в систему через Facebook.Поэтому, если они входят в Facebook, я собираю их идентификатор, электронную почту и создаю запись в своей таблице пользователей.
Если идентификатор уже существует в таблице пользователей, они пропускают автоматическую регистрацию и переходят непосредственно на страницу участников.Пока это мой код (взят из примера PHP SDK Facebook).Когда я запускаю сценарий регистрации, страница отображается как пустая, меня не перенаправляют.
РЕДАКТИРОВАТЬ: кажется, что происходит сбой сразу после запроса, если я использую следующий код, «test» никогда не печатается.
РЕДАКТИРОВАТЬ: я использую Codeigniter и этот сценарий является частью контроллера, не вызовет ли это проблему с require?
require 'http://localhost/facebook-php-sdk-6c82b3f/src/facebook.php';
echo "test";
-
public function signup()
{
require 'http://localhost/facebook-php-sdk-6c82b3f/src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
));
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
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(array('scope' => 'email'));
redirect($loginUrl);
}
print_r($user_profile);
$this->load->model("user_model");
$privileges = 1;
$loginLocation = ip2long($_SERVER['REMOTE_ADDR']);
$active = 1;
$this->user_model->add_user($user_profile->id, $user_profile->name, $user_profile->email, $loginLocation, $privileges, $active);
}