Задать вопрос
AntonMinsk
@AntonMinsk

Facebook PHP SDK getUser всегда возвращает 0?

Привет!


Возникла следующая проблема при авторизации пользователя на сайте через API Facebook.


Функция getUser всегда возвращает 0, т.е. пользователь не залогинен, хотя это не так.

<br/>
<br/>
$config = array('appId' =&gt; 'XXXX', 'secret' =&gt; 'YYYYY');<br/>
$facebook = new Facebook($config);<br/>
$id = $facebook-&gt;getUser(); // Всегда 0<br/>



Советуют сделать вот как, в файле base_facebook.php изменить

<br/>
 /**<br/>
 * Default options for curl.<br/>
 */<br/>
 public static $CURL_OPTS = array(<br/>
 <b>CURLOPT_CONNECTTIMEOUT =&gt; 10,</b><br/>
 CURLOPT_RETURNTRANSFER =&gt; true,<br/>
 CURLOPT_TIMEOUT =&gt; 60,<br/>
 CURLOPT_USERAGENT =&gt; 'facebook-php-3.1',<br/>
 );<br/>



заменить на

<br/>
 /**<br/>
 * Default options for curl.<br/>
 */<br/>
 public static $CURL_OPTS = array(<br/>
 <b>CURLOPT_CONNECTTIMEOUT =&gt; 30,</b> <br/>
 CURLOPT_RETURNTRANSFER =&gt; true,<br/>
 CURLOPT_TIMEOUT =&gt; 60,<br/>
 CURLOPT_USERAGENT =&gt; 'facebook-php-3.1',<br/>
 );<br/>



Помогло, но запрос этойже функции выполняется более 20 сек. Да и то не на долго, снова начал возвращать 0.


Может кто-то сталкивался?

Спасибо.
  • Вопрос задан
  • 4610 просмотров
Подписаться 3 Оценить 2 комментария
Решения вопроса 1
Akuma
@Akuma
Веб-программист
Скорее всего все гораздо проще чем вы думаете, сегодня как раз столкнулся с этим по работе.

API фейсбука работает через HTTPS. Facebook SDK работает через cUrl.
Следовательно можно попробовать добавить
CURLOPT_SSL_VERIFYPEER => 0
CURLOPT_SSL_VERIFYHOST => 0

к настройкам cUrl. Мне сегодня помогло.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
rakot
@rakot
У меня была проблема с getUser, дело было в том, что данный метод проверял гетовые параметры и сессию на наличие пользователя, если этих данных не находил, то все последующие вызовы возвращал 0, до следующей инициализации класса.
Возможно это не ваш случай, но всё же.
Ответ написан
Комментировать
denysd
@denysd
Мимо проходящий
Добавил значения:

CURLOPT_SSL_VERIFYPEER => 0
CURLOPT_SSL_VERIFYHOST => 0


Не помогло( Как еще можно решить проблему?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы