【问题标题】:Google_Http_MediaFileUpload constructor must implement interface Psr\Http\Message\RequestInterfaceGoogle_Http_MediaFileUpload 构造函数必须实现接口 Psr\Http\Message\RequestInterface
【发布时间】:2017-06-30 19:11:09
【问题描述】:

我正在尝试通过 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);

然后我明白了:

在第 118 行的 /var/www/html/google_drive2/src/Google/Http/REST.php 中未捕获的异常“Google_Service_Exception”和消息“未找到” ( ! ) Google_Service_Exception: Not Found in /var/www/html/google_drive2/src/Google/Http/REST.php on line 118

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

这是我完整的 gdrive_upload.php 代码

https://pastebin.com/x96CZg3U

【问题讨论】:

  • 请发布您的代码参见stackoverflow.com/help/mcve
  • 我已经在 pastebin pastebin.com/x96CZg3U发帖了
  • 堆栈不做粘贴箱,您必须提供一个小样本,我们可以用它来测试您的完整代码。编辑您的问题并包含足够的代码来显示问题。
  • 您找到解决方案了吗?

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


【解决方案1】:

错误:

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

当您传递对 Google API 的无效引用并且 API 找不到您请求的资源时发生。

例如,当向 Google Drive 添加文件时,当传递了无效的 Google Drive Id 时,这将显示。 将活动添加到 Google 日历时,当传递了无效的 Google 日历 ID 时会显示此信息。 等等。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多