我可以通过json在Google云端硬盘中创建文件到云端硬盘文件夹中:

$data = array(
    "title" => $_FILES['file']['name'],
    "parents" => array(array(
        "kind" => "drive#parentReference",
        "id" => $parent_id
    )),
    "mimeType" => "application/pdf"
);
$data = json_encode($data);

$url = "https://www.googleapis.com/drive/v2/files?oauth_token=".$accessToken;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

但是我找不到在其上添加PDF文件的方法,因为在Google云端硬盘文档中未指定json属性。

我必须在哪里添加文件内容?
这可能吗?

我是否必须上传文件以进行上传/驱动,然后上传具有文件夹ID的元数据?我对此没有感觉。

最佳答案

您要将文件放在正文中(即CURLOPT_POSTFIELDS中)。您将要指定与文件类型和Content-Length匹配的Content-Type。

这是well documented

文件元数据应该转到/drive/v2/files,而不是/upload/drive/v2/files。

这样,您将不得不提出两个请求。

如果要同时执行文件和元操作,则可以使用API​​和文件插入:

https://developers.google.com/drive/v2/reference/files/insert

请注意,有一个PHP library使它更容易。

10-08 03:08