Я пытаюсь развернуть HyBridAuth в качестве плагина на моем сайте. моя функция выглядит примерно так.
function authenticatewith( $provider ){
ini_set('display_errors','on');
//includes
$config = dirname(__FILE__) . '/hybridauth-2.1.2/hybridauth/config.php';
require_once( "hybridauth-2.1.2/hybridauth/Hybrid/Auth.php" );
$provider_name = $provider;
//$config = $this->getconfig($id);
try{
// initialize Hybrid_Auth with a given file
$hybridauth = new Hybrid_Auth( $config );
// try to authenticate with the selected provider
$adapter = $hybridauth->authenticate( $provider_name );
// then grab the user profile
$user_profile = $adapter->getUserProfile();
}
catch( Exception $e ){
echo "Error: please try again!";
echo "Original error message: " . $e->getMessage();
}
echo "USer Details: ";
var_dump($user_profile);
}
Я сталкиваюсь с фатальной ошибкой при попытке доступа к любому провайдеру.
Fatal error: Class 'Hybrid_Logger' not found in hybridauth/Hybrid/Endpoint.php on line 165
Я не получаю ссылки на эту проблему в стеке, хотя я подниму это здесь.
Спасибо & С уважением
Прежде чем делать что-либо еще, убедитесь, что вы используете session_start ().
Так как использование session_start () вызовет ошибку уровня E_NOTICE, если сессия уже была начата, лучшим подходом будет:
if(session_id() == '') {
session_start();
}
И имейте в виду, что если в браузере пользователя не включены файлы cookie, у вас будут проблемы с HybridAuth из-за значения по умолчанию для параметра PHP session.use_cookies
session.use_cookies = 1 //PHP uses cookies by default
Бета-пользователь проекта, над которым я работаю, сообщил, что видел эту ошибку, и долгое время я не мог ее воспроизвести. После долгих часов отладки это была ошибка конфигурации браузера, специфичная для пользователя (куки были отключены). Не уверен, что это решит вашу проблему, но стоит упомянуть, что ошибка:
Fatal error: Class 'Hybrid_Logger' not found in hybridauth/Hybrid/Endpoint.php
Также может быть вызвано из-за настроек браузера (например, отключенных файлов cookie).
Рекомендации:
Эта ошибка возникает, если вы не можете получить доступ к config.php, или если base_url неверен, или если вы пытаетесь получить доступ к удаленной службе приложений (facebook или другой) с локального хоста … Затем вы должны использовать живой домен, работающий в Интернете, чтобы Для этого вам нужно добавить следующую строку в ваши windows / system32 / drivers / etc / hosts, если вы находитесь под windows, и / etc / hosts, если вы находитесь в системе на основе Unix:
127.0.0.1 your-domaine.extension
где расширение является одним из следующих: com, net или что-либо еще, что может работать
этот метод применяется, если у вас нет рабочего домена для вашего приложения
в противном случае вам нужно указать свой домен www для правильной работы …
надеюсь, это полезно
У меня была точно такая же ошибка, я обнаружил, что глобальная переменная сеанса не имеет требуемых значений («CONFIG»), и это потому, что я установил base_url, отличный от того, который я тестировал. Чтобы быть более конкретным: я заходил на сайт www.mywebsite.com, а base_url был установлен как mywebsite.com. Исправили это, установив base_url на www.mywebsite.com.
Я также рекомендую перенаправить на www, как это: .htaccess — как заставить "WWW." в общем?
require_once( "hybridauth-2.1.2/hybridauth/Hybrid/Auth.php" );
не содержит полного пути, как в случае включения файла config.php.
Используйте session_start ();
прежде чем делать что-то еще ..