Google_Http_MediaFileUpload构造函数必须实现接口Psr \ Http \ Message \ RequestInterface

时间:2017-06-30 19:11:10

标签: php google-api google-drive-api google-api-php-client

我正在尝试通过php上传谷歌驱动器中新创建的文件夹中的大文件。 但是当我不使用时

   $client->setDefer(true);

然后我收到了这个错误:

  

可捕获的致命错误:传递给Google_Http_MediaFileUpload :: __ construct()的参数2必须实现接口Psr \ Http \ Message \ RequestInterface,给出了Google_Service_Drive_DriveFile的实例,在第158行的/var/www/html/google_drive2/gdrive_upload.php中调用并在第78行的/var/www/html/google_drive2/src/Google/Http/MediaFileUpload.php中定义

当我使用

    $client->setDefer(true);

然后我明白了:

  

未捕获的异常' Google_Service_Exception'有消息'未找到'在第118行的/var/www/html/google_drive2/src/Google/Http/REST.php中   (!)Google_Service_Exception:在第118行的/var/www/html/google_drive2/src/Google/Http/REST.php中找不到

尝试了一切但失败了。请告诉我我做错了什么。

这是我的完整代码gdrive_upload.php

https://pastebin.com/x96CZg3U

1 个答案:

答案 0 :(得分:0)

错误:

Google_Service_Exception:第118行的/path/to/src/Google/Http/REST.php中找不到

当您向Google API传递无效引用并且API无法找到您要求的资源时,会发生

例如,在向Google云端硬盘添加文件时,会在通过无效的Google云端硬盘ID时显示。 向Google日历添加活动时,会在通过无效的Google日历ID时显示。 等

在您的情况下,该文件夹可能尚未完全设置。因此,您使用的是有效身份证明,但Google尚未完全创建该文件夹。使用$ client-> setDefer(true)可能会让Google有足够的时间来完全设置文件夹,从而允许您的文件夹ID验证。

免责声明:此错误也可能出现在其他情况下。