Просматривая API Facebook, я немного запутался в правильном подходе. Я хочу, чтобы пользователи пропускали регистрацию или автоматически регистрировали их, если они входят в систему через Facebook. Поэтому, если они входят в Facebook, я собираю их идентификатор, адрес электронной почты и создаю запись в своей таблице пользователей.
Если идентификатор уже существует в таблице пользователей, они пропускают автоматическую регистрацию и переходят непосредственно на страницу участников. Это мой код (взятый из примера PHP SDK от Facebook). Когда я запускаю сценарий регистрации, страница отображается как пустая, меня не перенаправляют.
РЕДАКТИРОВАТЬ: кажется, что ошибка возникает сразу после требования, если я использую следующий код, «тест» никогда не печатается.
РЕДАКТИРОВАТЬ: Я использую Codeigniter, и этот скрипт является частью контроллера, не вызовет ли это проблемы с требованием?
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);
}