1

我的最终目标是允许用户将一些内容上传到他们个人帐户中的 google drive word 文档中。

我正在使用https://developers.google.com/drive/v2/reference/files/insert#examples上提供的 PHP 示例。上传简单的文本文件时,它工作正常。

然后(在使用 mimetype application/msword 浪费了将近 8 个小时之后。不知道为什么文档不能更容易地找到这些常见的细节。)我将 mimetype 更改为application/vnd.google-apps.document并使用空数据,并且它工作得很好。

然后,我在 google drive web 界面上创建了一个 doc 文件,然后将其导出到我的机器上。它被保存为 docx。然后在示例中,此文件用作数据源,我不断收到Error calling POST https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart : (400) Bad Request错误。

错误消息甚至没有提供有关请求有什么问题的更多详细信息。

[responseBody:protected] => {
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "badRequest",
        "message": "Bad Request"
      }
    ],
    "code": 400,
    "message": "Bad Request"
  }
}
4

1 回答 1

0

您可能必须将 Word 文件的内容作为字符串放入 $request['content']

如果是 .DOCX,则正确的 MIME 类型是:

application/vnd.openxmlformats-officedocument.wordprocessingml.document

参考:MSDN 库

那么,如何通过响应而不是产生它的请求来判断出什么问题呢?

你可能只是写了“HTTP400 - 废话不工作”,而不是,

这将提供大约等量的信息。

HTTP Response-Code #400 一般意味着,

HTTP 请求格式不正确(例如缺少参数、未正确转义等)。

^ ...这当然是正确的答案 - 根据示例响应

这正是提供的信息不足以为您提供直接答案的原因。我还希望 API 在响应中包含更多详细信息(尤其是在偶尔出现文件验证错误时)——因为有时人们只能猜测“另一边”出了什么问题。

最佳实践是从一个非常简单的工作版本开始,然后增加一些复杂性。

如果您希望审查/解决问题,您应该添加一个示例请求

甚至代码看起来如何都无关紧要 - 当请求明显格式错误时。

普通我提供网络脚本作为服务,只是目前有点资源不足。

于 2013-01-25T04:50:20.690 回答