google drive api无法访问私人财产Google_Client :: $ io

时间:2015-02-12 18:22:09

标签: php google-api

下午好! 我正在尝试下载该文件。 我的剧本:

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

告诉我,我的错误是什么? 在此先感谢,抱歉英语不好!

2 个答案:

答案 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'。

的新家