我的最终目标是允许用户将某些内容上传到个人帐户中的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"
}
}
答案 0 :(得分:0)
您可能必须将Word文件的内容作为字符串放入$ request ['content']
如果是.DOCX,正确的MIME类型是:
application/vnd.openxmlformats-officedocument.wordprocessingml.document
参考:MSDN Library
那么,如何判断响应有什么问题,而不是产生它的请求?
你可能只是写了“HTTP400 - 废话不起作用”,
会提供大量相同的信息。
HTTP响应 - 代码#400一般意味着,
HTTP请求格式错误(例如缺少参数,未正确转义等)。
^ ...这肯定是正确的答案 - 根据样本回复。
这正是为什么提供的信息不足以为您提供直接答案的原因。我还希望API在响应中有更多的细节(尤其是偶尔的文件验证错误) - 因为有时人们只能猜到“另一方面的错误”。
最佳做法是从一个非常简单的工作版本开始,然后增加一些复杂性。
如果您希望审核/解决问题,则应添加示例请求。
甚至与代码的外观无关 - 当请求明显不正确时。
普通的我提供网络脚本作为服务,目前只是资源不足。