Example #1
0
function facebook_callback()
{
    $facebook = new Facebook(array('appId' => FACEBOOK_API_KEY, 'secret' => FACEBOOK_API_SECRET));
    try {
        $fbuser = $facebook->api('/me');
        if ($id = user_email_exists($fbuser['email'])) {
            $user = new User($id);
            $user->facebook = $fbuser['id'];
            $user->save();
            $user->fb_login();
            redirect('/user');
        } else {
            $user = new User();
            $user->set_default();
            $user->email = $fbuser['email'];
            $user->password = md5(time());
            $user->status = 1;
            if (isset($fbuser['username'])) {
                $user->username = $fbuser['username'];
            } else {
                $user->username = $fbuser['name'];
            }
            $user->firstname = $fbuser['first_name'];
            $user->lastname = $fbuser['last_name'];
            $user->facebook = $fbuser['id'];
            $user->gender = $fbuser['gender'];
            $user->picture = new File();
            $user->picture->load_from_url('https://graph.facebook.com/' . $fbuser['id'] . '/picture?type=large');
            $created = $user->create();
            if ($created) {
                $user->fb_login();
                redirect('/user');
            } else {
                redirect('/register');
            }
        }
    } catch (Exception $e) {
        redirect('/');
    }
}