下午好! 我正在尝试下载该文件。 我的剧本:
function GetFile($service, $fileId) {
$fileVars = null;
try {
$file = $service->files->get($fileId);
$fileVars = get_object_vars($file);
$downloadUrl = $file->getDownloadUrl();
error_log('Download URL file from Drive: ' . $downloadUrl);
if ($downloadUrl) {
$request = new Google_Http_Request($downloadUrl, 'GET', null, null);
$httpRequest = Google_Client::$io->authenticatedRequest($request);
error_log(print_r($httpRequest, 1));
if ($httpRequest->getResponseHttpCode() == 200) {
$content = $httpRequest->getResponseBody();
$fileVars['content'] = $content?($content):'';
} else {
return null;
}
} else {
return null;
}
} catch (apiServiceException $e) {
error_log('Error retrieving file from Drive: ' . $e->getMessage());
throw $e;
}
return json_encode($fileVars);
}
$requestedFile = GetFile($service,$data[0]['id']);
我推断出来 致命错误:无法访问私有财产Google_Client :: $ io
告诉我,我的错误是什么? 在此先感谢,抱歉英语不好!
答案 0 :(得分:1)
这是有效的
$SignhttpRequest = $client->getAuth()->sign($request);
$httpRequest = $client->getIo()->makeRequest($SignhttpRequest);
答案 1 :(得分:0)
使用
$httpRequest = $client->getAuth()->authenticatedRequest($request);
而不是
$httpRequest = Google_Client::$io->authenticatedRequest($request);
请参阅google-api-php-client / src / Google / Auth / Abstract.php中的Google_Auth_Abstract类注释:
一个实用程序函数,首先调用$ this-> auth-> sign($ request),然后对该签名请求执行makeRequest()。
并查看Google's migration guide 'Migrating From 0.6.* to 1.0.0' 部分'成员辅助功能的变化'和' authenticatedRequest'。
的新家