Аутентификация входа в Facebook с использованием PHP SDK работает неправильно - PullRequest
0 голосов
/ 24 октября 2011

Когда пользователь заходит на мой сайт, я использовал, чтобы открыть новое окно для аутентификации пользователя и запросить разрешение через мое приложение (назовите его UseCase1). Но когда пользователь уже вошел в систему, я пытался получить информацию о зарегистрированном пользователе через PHP SDK, поэтому мне не нужно открывать новое окно и проверять его (вы не будете открывать новое окно, которое закрывается после в то время как пользователь уже вошел в систему). Но метод getUser () мне ничего не возвращает. Тот же метод работает нормально, когда я иду через UseCase1 (открыть новое окно, которое закрывается автоматически). Ниже приведен код, который я пытаюсь использовать:

    $facebook = new Facebook(array(
                'appId'  => $appId,
                'secret' => $appSecret,
                'oauth' => true
                ));

            $me = $facebook->getUser();
            if ($me) {
              try {
                $user_profile = $facebook->api('/me');
              } catch (FacebookApiException $e) {
                //code to redirect to login url
                // USECASE1
                // use $facebook->getUser() one USECASE1 is over
                // now the user info is generated properly
              }
            }                

Все время, когда пользователь проходит через USECASE1 (но с пустым окном, поскольку пользователь вошел в систему и уже аутентифицировал приложение), даже если он уже вошел в систему и уже аутентифицировал приложение ранее.

Любая идея, почему это происходит

1 Ответ

0 голосов
/ 24 октября 2011

В вашем коде, если пользователь получает «USECASE1», он показывает, что устанавливается «$ me», потому что он попадает в ваш try / catch.

Использование $me = $facebook->getUser(); - этопока не проверено, принял ли пользователь разрешения для вашего приложения.

Я подозреваю, что причиной исключения «FacebookApiException» является то, что вы еще не получили разрешения пользователя.

Я бы предложил прочитать поток аутентификации и пример потока аутентификации PHP SDK, см. Следующие ссылки:

http://developers.facebook.com/docs/reference/php/facebook-api/

http://developers.facebook.com/docs/authentication2/

...