Google Drive Api - PHP - 上传word doc - 400错误请求

时间:2013-01-01 20:18:23

标签: google-drive-api

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

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

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

然后,我在google驱动器网络界面上创建了一个doc文件,然后将其导出到我的计算机上。它被保存为docx。然后在示例中,此文件用作数据源,我一直收到错误调用POST https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart :( 400)错误请求错误。

错误消息甚至不提供有关请求错误的更多详细信息。

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

1 个答案:

答案 0 :(得分:0)

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

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

application/vnd.openxmlformats-officedocument.wordprocessingml.document

参考:MSDN Library

那么,如何判断响应有什么问题,而不是产生它的请求?

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

会提供大量相同的信息。

HTTP响应 - 代码#400一般意味着,

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

^ ...这肯定是正确的答案 - 根据样本回复

这正是为什么提供的信息不足以为您提供直接答案的原因。我还希望API在响应中有更多的细节(尤其是偶尔的文件验证错误) - 因为有时人们只能猜到“另一方面的错误”。

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

如果您希望审核/解决问题,则应添加示例请求

甚至与代码的外观无关 - 当请求明显不正确时。

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