7

我正在使用 Laravel 4 并通过 composer 加载了 hybridauth,并让它在 Facebook 和 Twitter 上运行良好。现在我正试图让它与被列为附加提供商的 Steam 一起工作,但是我不断收到以下错误:

require_once(vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/Steam.php)[function.require-once]:无法打开流:没有这样的文件或目录

显然它在错误的地方寻找,实际的类位于这个位置:

供应商/hybridauth/hybridauth/additional-providers/hybridauth-steam/Providers/Steam.php

我能找到的文档很少,我唯一的猜测是,hybridauth 的作者只提供这些额外的提供者作为可选的附加功能,并希望您将类的位置移动到正确的位置,但是对于作曲家来说,这不是做事的方式,并且在我运行作曲家更新的任何时候都会引起问题。

我通过谷歌找不到任何有类似问题的人,这看起来很奇怪,所以我担心我错过了明显的问题。有没有办法使用额外的提供者,让它们自动加载,同时使用带有 Composer 的 hybridauth?

我能想到的唯一解决方案是在尝试自动加载之前手动包含正确的文件。我不介意这样做,但我假设必须有适当的方法来做到这一点,否则将 Composer 与 Hybridauth 一起使用是毫无用处的。

4

2 回答 2

4

我在使用 Instagram 时遇到了这个问题,并且能够使用包装器语法,该语法记录在这里http://hybridauth.sourceforge.net/userguide/tuts/specific-provider-wrapper.html

下面的代码让 Instagram 适配器为我工作。

           "Instagram" => array ( 
                "enabled" => true,
                "keys"    => array ( 
                    "id" => xxxx, 
                    "secret" => xxxx,
                ),
                "wrapper" => array(
                    'class'=>'Hybrid_Providers_Instagram',
                    'path' => $_SERVER['DOCUMENT_ROOT'].'/../vendor/hybridauth/hybridauth/additional-providers/hybridauth-instagram/Providers/Instagram.php'
                )
            ),

如果您阅读了 hybridauth/Hybrid/Provider_Adapter.php 第 69 行的源代码,您会看到它在使用标准路径执行 require_once 之前检查了这一点。

于 2014-01-30T06:36:04.537 回答
-1

我也搜索并搜索了这个。我能想到的只是它是为在没有框架的情况下使用而设计的,然后被移植以与 Composer 一起使用,但是没有加载“附加提供者”文件夹,或者其他什么。有点烂

我只是将文件复制到另一个目录中,现在一切正常。

这可能对你很方便......

http://blog.elliothesp.co.uk/coding/laravel-4-and-hybrid-auth/

关于这个的部分:

Copy the Steam.php file, located at:
laravel/vendor/hybridauth/hybridauth/additional-providers/hybridauth-steam/Providers/Steam.php

Over to:

laravel/vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/

我不知道为什么图书馆将它们分开,对我来说没有任何意义。

于 2013-09-06T14:07:47.543 回答