0

私はハイブリッド認証を使用して、facebook、twitter などのソーシャル Web サイトからユーザー情報を取得しています。接続するための PHP ライブラリは、ハイブリッド認証フォルダー自体で利用可能な install.php を使用して構成されています。

自分のアプリケーションで利用可能ないくつかの例を使用しようとすると、次のエラーが発生します

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いないので、見つけることができません。これを見つけるのを手伝ってください。

よろしくトニー

4

1 に答える 1

4

dirname/my/website/scripts末尾のスラッシュなしのようなものが得られます。

したがって、コードを次のように変更する必要があります。

$config = dirname(__FILE__).'/hybridauth/config.php';

余談ですが、require() と include() に絶対パスを使用することを検討してください。

于 2012-06-27T11:21:02.523 に答える