我想使用命令行脚本将一些文件上传到我的Google云端硬盘帐户。
我不想使用PHP SDK,所以我使用cURL。有我的代码:
$content = file_get_contents('foo.sql');
$request = curl_init();
curl_setopt($request, CURLOPT_URL, sprintf(DRIVE_API_URL, DRIVE_API_KEY));
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($request, CURLOPT_HTTPHEADER, [
sprintf('Conent-Length: %s', strlen($content)),
sprintf('Conent-Type: %s', 'application/sql')
]);
curl_setopt($request, CURLOPT_POSTFIELDS, $content);
$response = curl_exec($request);
curl_close($request);
我正在尝试使用从Google控制台生成的API密钥进行身份验证。我发送请求的URL是:
https://www.googleapis.com/upload/drive/v3/files?uploadType=media&key=DRIVE_API_KEY
当我执行请求时,Google会发送401回复:
{ “域名”:“全球”, “理由”:“必需”, “message”:“需要登录”, “locationType”:“标题”, “location”:“授权”}
有什么想法吗?
更新1
现在我正在使用PHP SDK:
$client = new Google_Client([
'developer_key' => 'MY_API_KEY'
]);
$client->setScopes(implode(' ', [
Google_Service_Drive::DRIVE_METADATA_READONLY,
Google_Service_Drive::DRIVE_FILE ]));
$service = new Google_Service_Drive($client);
var_dump($service->files->listFiles());
谷歌说:
{ “域名”:“全球”, “理由”:“文件不足”, “message”:“用户对此文件没有足够的权限。” }