在 Laravel 5 中使用 Google Drive Api

Posted

技术标签:

【中文标题】在 Laravel 5 中使用 Google Drive Api【英文标题】:Use Google Drive Api in Laravel 5 【发布时间】:2015-06-13 03:17:59 【问题描述】:

我是 Laravel 的新手,当然这个问题有一个明显的答案,但是我一直无法将 Laravel 5 与 Google Api 连接起来。

我像往常一样用 composer 安装了 Api,它在我的供应商文件夹中,但现在我不知道如何使用它。

我还没有找到答案(因为这一定非常简单)。

可能我缺少命名空间调用,或类似的东西。

在我的 IndexController 上,我有:

    <?php 

namespace App\Http\Controllers;

class IndexController extends Controller 

    /**
     * Show the application welcome screen to the user.
     *
     * @return Response
     */
    public function index()
    
      $client = new Google_Client();
      $client->setApplicationName("Client_Library_Examples");
      $client->setDeveloperKey("HERE_GOES_MY_KEY");

      $service = new Google_Service_Drive($client);
      $results = $service->volumes->listVolumes();

      foreach ($results as $item) 
        echo $item['volumeInfo']['title'], "<br /> \n";
      
    


我得到的错误是:

找不到类“App\Http\Controllers\Google_Client”

我认为可能是 autoload_classmap 的问题,但是定义了所有 GoogleApi 类,例如:

(...)

'Google_Client' => $vendorDir 。 '/google/apiclient/src/Google/Client.php',

(...)

'Google_Service_Drive' => $vendorDir 。 '/google/apiclient/src/Google/Service/Drive.php',

感谢您的耐心和帮助!

【问题讨论】:

【参考方案1】:

我想我有。

我只需要设置:

use Google_Client; 
use Google_Service_Drive;

【讨论】:

或者你可以使用完全命名空间的类名,如果你只打算使用一次的话。看起来$client = new \Google_Client() 会很好。通常根命名空间 \ 是默认的,但由于您在自定义命名空间中,您需要使用您的方法或我的方法指定不同的命名空间。您可以看到 PHP 假定可以在 App\Http\Controllers 中找到未命名空间的类 - 与您当前的类相同的命名空间。【参考方案2】:

检查文件 composer.json

如果不存在,则在类映射数组中添加“vendor/google/apiclient/src/Google”。

然后运行composer dump-autoload

"autoload": 
        "classmap": [
            "vendor/google/apiclient/src/Google"
        ]

【讨论】:

以上是关于在 Laravel 5 中使用 Google Drive Api的主要内容,如果未能解决你的问题,请参考以下文章

如何减少 Laravel 5 中的社交名流范围?

如何在 laravel 5 中插入和更新图像 Summernote

在 Laravel 中使用 Google Drive API

google map api no display laravel 5.4

使用 gmail 发送 Laravel 5.5 邮件 [重复]

如何在实际服务器上托管使用 laravel 5 制作的网站?