3

ソーシャル ログイン アクションに Yii フレームワークと HybridAuth を使用しています。Google と yahoo は正常に動作しますが、Facebook と Twitter を動作させることはできません。

そのために Https:// ドメインが必要ですか? それとも、追加する構成だけですか?

Facebook または Twitter を使用してログインしようとすると、次の PHP 警告が表示されます。

include(DefaultController.php) [function.include]: ストリームを開けませんでした: そのようなファイルやディレクトリはありません

エラーは vendors\yii_1.1.10\YiiBase.php(418) に表示されます:

{
407                     foreach(self::$_includePaths as $path)
408                     {
409                         $classFile=$path.DIRECTORY_SEPARATOR.$className.'.php';
410                         if(is_file($classFile))
411                         {
412                             include($classFile);
413                             break;
414                         }
415                     }
416                 }
417                 else
418                     include($className.'.php');
419             }
420             else  // class name with namespace in PHP 5.3
421             {
422                 $namespace=str_replace('\\','.',ltrim($className,'\\'));
423                 if(($path=self::getPathOfAlias($namespace))!==false)
424                     include($path.'.php');
425                 else
426                     return false;
427             }
428             return class_exists($className,false) || interface_exists($className,false);
429         }
430         return true;

ここに私の主な設定ファイルがあります

'modules'=>array('admin',
        'hybridauth' => array(
            'baseUrl' => 'http://'. $_SERVER['SERVER_NAME'] . '/hybridauth', 
            'withYiiUser' => false, // Set to true if using yii-user
            "providers" => array ( 

                "yahoo" => array ( 
                    "enabled" => true 
                ),

                "google" => array ( 
                    "enabled" => true,
                    "keys"    => array ( "id" => "[private]", "secret" => "[private]" ),
                    "scope"   => ""
                ),

                "facebook" => array ( 
                    "enabled" => true,
                    "keys"    => array ( "id" => "[private]", "secret" => "[private]" ),
                    "scope"   => "email,publish_stream", 
                    "display" => "" 
                ),

                "twitter" => array ( 
                    "enabled" => true,
                    "keys"    => array ( "key" => "[private]", "secret" => "[private]" ) 
                )
            )
        )
    ),
4

2 に答える 2

1

HybridAuth のインストール中に同じエラーが発生しました。一部ファイルの大文字小文字を変更することで解決しました。

Linux サーバーでは大文字と小文字が区別されるため、「Facebook.php」は機能していましたが、「facebook.php」というファイルは見つかりませんでした。

于 2013-04-13T12:15:42.843 に答える
1

Hybridauth ファイルをインポートしてみてください。

config/main.php

'import'=>array(
    ...
    // for hybridauth
    'application.modules.hybridauth.controllers.*',
    ...
),
于 2013-09-04T21:59:13.287 に答える