Api密钥身份验证

时间:2017-12-22 21:01:35

标签: php google-api

我想使用命令行脚本将一些文件上传到我的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”:“用户对此文件没有足够的权限。” }

0 个答案:

没有答案