Мой код входа в facebook с помощью php sdk не работает. Когда я нажимаю на кнопку входа в index.php, он открывает всплывающее окно, где я ввожу свой адрес электронной почты и пароль, а затем он просто возвращает меня к index.php с некоторым кодом, добавленным к URL-адресу:
http://localhost/test.php?code=AQAr4gedKEz01BGIGpIB5Ijh66bk9j7qhW9...etc
Также $ user возвращался 0 даже после попытки входа в систему. Я сделал кое-что в base_facebook.php и нашел это. Существует функция, которая получает токен доступа, используя код из URL-адреса. Он находится на линии 752 base_facebook.php. Эта функция такова:
protected function getAccessTokenFromCode($code, $redirect_uri = null) { . . . try { // need to circumvent json_decode by calling _oauthRequest // directly, since response isn't JSON format. $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), $params = array('client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), 'redirect_uri' => $redirect_uri, 'code' => $code)); } catch (FacebookApiException $e) { // most likely that user very recently revoked authorization. // In any event, we don't have an access token, so say so. return false; } . . . }
Здесь код под catch (FacebookApiException $ e) выполняется, и, следовательно, функция возвращает false . Поэтому нет токена доступа, и, следовательно, я не могу войти в систему, я думаю.
Я немного нуб и на самом деле не знаю, какой улов (FacebookApiException $ e). Может ли кто-нибудь сказать мне, как это исправить?
РЕДАКТИРОВАТЬ:
Я попытался добавить print_r ($ e); как это:
catch (FacebookApiException $e) { // most likely that user very recently revoked authorization. // In any event, we don't have an access token, so say so. print_r($e); return false; }
и это ошибка, которую она распечатала: link . Что именно здесь происходит?