Как решить эту "ошибку конфигурации Hybriauth"?
Я использую hybridauth для получения информации о пользователях от социальных сетей, таких как Facebook, Twitter и т. д. PHP lib для подключения я настроил с помощью install.php, который находится в самой папке hybridauth.
когда я пытался использовать некоторые примеры, доступные в моем собственном приложении, я получаю следующую ошибку
Hybriauth configuration error.
Original error message: Hybriauth config does not exist on the given path.
вот мой полный код:(index.php)
<?php
// start a new session (required for Hybridauth)
session_start();
// change the following paths if necessary
//require_once( str_replace('//','/',dirname(__FILE__).'/') .'folder/sub.php');
$config = dirname(__FILE__).'hybridauth/config.php';
require_once( "hybridauth/Hybrid/Auth.php" );
try{
// create an instance for Hybridauth with the configuration file path as parameter
$hybridauth = new Hybrid_Auth( $config );
// try to authenticate the user with twitter,
// user will be redirected to Twitter for authentication,
// if he already did, then Hybridauth will ignore this step and return an instance of the adapter
$twitter = $hybridauth->authenticate( "Twitter" );
// get the user profile
$twitter_user_profile = $twitter->getUserProfile();
echo "Ohai there! U are connected with: <b>{$twitter->id}</b><br />";
echo "As: <b>{$twitter_user_profile->displayName}</b><br />";
echo "And your provider user identifier is: <b>{$twitter_user_profile->identifier}</b><br />";
// debug the user profile
print_r( $twitter_user_profile );
// exp of using the twitter social api: return users count of friends, followers, updates etc.
$account_totals = $twitter->api()->get( 'account/totals.json' );
// print recived stats
echo "Here some of yours stats on twitter: " . print_r( $account_totals, true );
// disconnect the user ONLY form twitter
// this will not disconnect the user from others providers if any used nor from your application
echo "Logging out..";
$twitter->logout();
}
catch( Exception $e ){
// Display the recived error,
// to know more please refer to Exceptions handling section on the userguide
switch( $e->getCode() ){
case 0 : echo "Unspecified error."; break;
case 1 : echo "Hybriauth configuration error."; break;
case 2 : echo "Provider not properly configured."; break;
case 3 : echo "Unknown or disabled provider."; break;
case 4 : echo "Missing provider application credentials."; break;
case 5 : echo "Authentification failed. "
. "The user has canceled the authentication or the provider refused the connection.";
break;
case 6 : echo "User profile request failed. Most likely the user is not connected "
. "to the provider and he should authenticate again.";
$twitter->logout();
break;
case 7 : echo "User not connected to the provider.";
$twitter->logout();
break;
case 8 : echo "Provider does not support this feature."; break;
}
// well, basically your should not display this to the end user, just give him a hint and move on..
echo "<br /><br /><b>Original error message:</b> " . $e->getMessage();
}
моя структура папок выглядит следующим образом:
project folder :
slingshare
--hybridauth
-- Hybrid
--Auth.php
--config.php
index.php
так как я очень новый парень в этом PHP
Я не могу это выяснить, пожалуйста, помогите мне найти это.
С уважением Тони
1 ответ
Решение
dirname
даст вам что-то вроде /my/website/scripts
без завершающего слеша.
поэтому вам нужно изменить код на:
$config = dirname(__FILE__).'/hybridauth/config.php';
Кроме того, рассмотрите возможность использования абсолютных путей для ваших require() и include()s