Hybridauth - PHP - Facebook вернул недопустимый идентификатор пользователя

Хорошо, что у меня была работоспособность и логин с помощью facebook с 2 недель назад, я ничего не изменил, и сегодня утром я обнаружил, что он не работает. Я попытался переключить приложение facebook (id и секретный ключ) на другой, который также работал до этого, но все равно происходит то же самое. Я также попытался запустить примеры, которые поставляются с hybridauth, и они не работают ни один, поэтому я знаю, что это не для конфигурации с моей стороны, ни из конфигурации приложения facebook.

Это то, что говорит мне, когда я пытаюсь войти в систему:

Ошибка! Ошибка аутентификации. Пользователь отменил аутентификацию или поставщик отказался от соединения.

Исходное сообщение об ошибке: Ошибка аутентификации! Facebook вернул идентификатор пользователя invalide.

  • Может ли происходить что-то, связанное с моим сервером?
  • В течение последних 24 часов facebook внесла какие-либо изменения в свой API?
  • Кто-нибудь экспериментировал с чем-то подобным?

ОБНОВЛЕНО: Я работаю только с 1 недели назад, чтобы заставить его работать. Я нашел других людей с той же проблемой (менее 1 месяца назад), они исправили это 17 дней назад, обновив PHP PHP SDK.

Вот ссылка на GitHub, где вы можете увидеть изменения, чтобы исправить эту проблему:

https://github.com/F21/hybridauth/commit/3b115ee3abb5afbf44c37082e63aa8b056bf550c

С этим мне удалось заставить все работать, но теперь происходит та же ошибка даже с этими изменениями (после одной недели работы).

Ответ 1

У меня была аналогичная проблема, и я верю, что в своем случае я нашел решение и, возможно, это помогло бы кому-то другому. (CURLOPT_CONNECTTIMEOUT)

Ошибка HybridAuth (недопустимый пользователь) очень общий, в основном это выглядит, если curl возвращает что-то, а если нет, дает эту ошибку, но реальная причина не отображается в сообщении об ошибке.

То, что я закончил, это загрузка php sdk facebook и использование примера по умолчанию https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php

(Изменены ключи для моего приложения)

В этот момент мне удалось увидеть новые сообщения об ошибках, которые ранее не отображались при использовании HybridAuth

PHP Неустранимая ошибка: Неиспользуемый CurlException: 6: тайм-аут имен

Это указывало на эту статью http://milkcodes.blogspot.com/2010/12/php-fatal-error-uncaught-curlexception.html, которая говорит об увеличении таймаута CURL в base_facebook.php, который я сделал, и Voila! снова начал работать.

Основная проблема во многих сообщениях заключается в том, что связь CURL в основном отвечает за эти проблемы (https, timeout, nslookup и т.д.)

Хороший способ быстро понять это - провести тест script с помощью fb sdk для отладки.

в base_facebook.php вокруг строки 133

public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 30,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_USERAGENT      => 'facebook-php-3.2',

Ответ 2

Возможно, ваша конфигурация отправляет KEY вместо ID:

Пример Facebook:

"keys"    => array ( "id" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )

Twitter Пример:

"keys"    => array ( "key" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )

Ответ 3

Это связано с изменением api в facebook graph api, вы можете загрузить последнюю версию Hybridauth для facebook https://github.com/hybridauth/hybridauth, в настоящее время сторонняя сторона api недоступен для facebook, поэтому вам нужно скачать facebook sdk и поместить его под каталог thirdparty, вы можете скачать его из https://github.com/facebook/php-graph-sdk.

После загрузки вам может потребоваться настроить файлы автозагрузки facebook sdk.