Google Drive API下载文件getIo错误
我想创建一个gDrive应用程序。 我可以得到downloadUrl (如为字符串“https://doc-0k-68-docs.googleusercontent.com/docs/securesc/gf6salc3nfs5me1dnqgnp4crl90gg593/21kfelc8h3l1qvkgskqacnee2pqjt5es/1343484000000/14678698184812381901/14678698184812381901/0B95t2gVGbZ61Sk0yNlY5TTZObUU?h=16653014193614665626 & E =下载& gd = true'(length = 251))Google Drive API下载文件getIo错误
但我无法通过此链接下载。 我想,一定要认证。
我尝试这个功能,我把here
function downloadFile($service, $file) {
$downloadUrl = $file->getDownloadUrl();
if ($downloadUrl) {
$request = new apiHttpRequest($downloadUrl, 'GET', null, null);
$httpRequest = $service->getIo()->authenticatedRequest($request);
if ($httpRequest->getResponseHttpCode() == 200) {
return $httpRequest->getResponseBody();
} else {
// An error occurred.
return null;
}
} else {
// The file doesn't have any content stored on Drive.
return null;
}
}
我参加....
请帮助错误
调用未定义的方法apiDriveService :: GETIO()我。我找不到任何地方。
object(apiHttpRequest)[18]
protected 'url' => string 'https://doc-0k-68-docs.googleusercontent.com/docs/securesc/gf6salc3nfs5me1dnqgnp4crl90gg593/900384ep39btqvj6j91ssm11lvom8r09/1343635200000/14678698184812381901/14678698184812381901/0B95t2gVGbZ61Sk0yNlY5TTZObUU?h=16653014193614665626&e=download&gd=true&key=AIzaSyA1qi-3-tqpyzxAXhy5c9_EkVGFNsRZ9Fw' (length=295)
protected 'requestMethod' => string 'GET' (length=3)
protected 'requestHeaders' =>
array (size=1)
'authorization' => string 'Bearer ya29.AHES6ZTgpamuF6g35HuLj2PW_KH06yZhLLNdNLF_MgaiFGLp' (length=60)
protected 'postBody' => null
protected 'userAgent' => string 'Tahribat google-api-php-client/0.5.0' (length=36)
protected 'responseHttpCode' => int 404
protected 'responseHeaders' =>
array (size=10)
'server' => string 'HTTP Upload Server Built on Jul 25 2012 10:54:42 (1343238882)' (length=61)
'access-control-allow-origin' => string '*' (length=1)
'access-control-allow-credentials' => string 'false' (length=5)
'access-control-allow-headers' => string 'authorization' (length=13)
'access-control-allow-methods' => string 'GET,OPTIONS' (length=11)
'date' => string 'Mon, 30 Jul 2012 08:01:31 GMT' (length=29)
'expires' => string 'Mon, 30 Jul 2012 08:01:31 GMT' (length=29)
'cache-control' => string 'private, max-age=0' (length=18)
'content-length' => string '0' (length=1)
'content-type' => string 'text/html; charset=UTF-8' (length=24)
protected 'responseBody' => boolean false
public 'accessKey' => null
///////
object(DriveFile)[15]
public 'mimeType' => string 'application/rar' (length=15)
public 'thumbnailLink' => null
protected '__labelsType' => string 'DriveFileLabels' (length=15)
protected '__labelsDataType' => string '' (length=0)
public 'labels' =>
object(DriveFileLabels)[16]
public 'restricted' => boolean false
public 'hidden' => boolean false
public 'viewed' => boolean false
public 'starred' => boolean false
public 'trashed' => boolean false
protected '__indexableTextType' => string 'DriveFileIndexableText' (length=22)
protected '__indexableTextDataType' => string '' (length=0)
public 'indexableText' => null
public 'etag' => string '"WtRjAPZWbDA7_fkFjc5ojsEvE7I/MTM0MzM1NDI2OTYwMA"' (length=48)
public 'lastModifyingUserName' => string 'Pskptbt6' (length=8)
public 'writersCanShare' => boolean true
public 'id' => string '0By790Jqkq9pLRDRuUFZ3UWVxdGs' (length=28)
public 'title' => string '1caec72e95949a693dc0e95eeaeb2a9e.rar' (length=36)
public 'ownerNames' =>
array (size=1)
0 => string 'Pskptbt6' (length=8)
public 'sharedWithMeDate' => null
public 'lastViewedByMeDate' => null
protected '__parentsType' => string 'ParentReference' (length=15)
protected '__parentsDataType' => string 'array' (length=5)
public 'parents' =>
array (size=0)
empty
public 'exportLinks' => null
public 'originalFilename' => string 'Web Elements.rar' (length=16)
public 'description' => null
public 'editable' => boolean false
public 'kind' => string 'drive#file' (length=10)
public 'quotaBytesUsed' => string '30249130' (length=8)
public 'fileSize' => string '30249130' (length=8)
public 'createdDate' => string '2012-07-27T01:55:50.169Z' (length=24)
public 'md5Checksum' => string '595182e10bcc986cc8dcc41a6e945019' (length=32)
public 'embedLink' => null
public 'alternateLink' => string 'https://docs.google.com/file/d/0By790Jqkq9pLRDRuUFZ3UWVxdGs/edit' (length=64)
public 'permissionsLink' => null
public 'modifiedByMeDate' => null
public 'downloadUrl' => string 'https://doc-04-5s-docs.googleusercontent.com/docs/securesc/gf6salc3nfs5me1dnqgnp4crl90gg593/t1ucp1ub6sdcgk7hdatj1it5m5ntoodh/1343635200000/13117762293604295629/14678698184812381901/0By790Jqkq9pLRDRuUFZ3UWVxdGs?h=16653014193614665626&e=download&gd=true' (length=251)
protected '__userPermissionType' => string 'Permission' (length=10)
protected '__userPermissionDataType' => string '' (length=0)
public 'userPermission' =>
object(Permission)[17]
public 'withLink' => null
public 'kind' => string 'drive#permission' (length=16)
public 'name' => null
public 'value' => null
public 'id' => string 'me' (length=2)
public 'authKey' => null
public 'etag' => string '"WtRjAPZWbDA7_fkFjc5ojsEvE7I/dLmoyrW_nZG7qLX6EhuNvVbQIq0"' (length=57)
public 'role' => string 'reader' (length=6)
public 'photoLink' => null
public 'type' => string 'user' (length=4)
public 'additionalRoles' => null
public 'selfLink' => string 'https://www.googleapis.com/drive/v2/files/0By790Jqkq9pLRDRuUFZ3UWVxdGs/permissions/me' (length=85)
public 'fileExtension' => string 'rar' (length=3)
public 'selfLink' => string 'https://www.googleapis.com/drive/v2/files/0By790Jqkq9pLRDRuUFZ3UWVxdGs' (length=70)
public 'modifiedDate' => string '2012-07-27T01:57:49.600Z' (length=24)
public 'webContentLink' => string 'https://docs.google.com/uc?id=0By790Jqkq9pLRDRuUFZ3UWVxdGs&export=download' (length=74)
其实我只是想喜欢这个网站。
但是,只是我在我的网站上自动创建各路段。
改变这一行:
$httpRequest = $service->getIo()->authenticatedRequest($request);
由:
$httpRequest = apiClient::$io->authenticatedRequest($request);
我有我自己的错误后,通过改变线路,我没有问题了。
$服务显然是关于apiClient而不是apiDriveService。
$request = new Google_HttpRequest($downloadUrl, 'GET', null, null);
$httpRequest = Google_Client::$io->authenticatedRequest($request);
新图书馆谷歌的API-PHP-客户0.6.0.tar.gz
我安装了最新的PHP客户端库,并没有上述工作的修改建议。
原始代码
$httpRequest = $service->getIo()->authenticatedRequest($request);
Fatal error: Call to undefined method Google_Service_Drive::getIo()
首先建议更改:
$httpRequest = apiClient::$io->authenticatedRequest($request);
Fatal error: Class 'apiClient' not found in ...../Drive/auth.php
第二所建议的变化:
$httpRequest = Google_Client::$io->authenticatedRequest($request);
Fatal error: Cannot access private property Google_Client::$io in .../Drive/auth.php
我发现 “authenticatedRequest($请求);” in - src/Google/Auth/OAuth2。PHP
public function authenticatedRequest(Google_Http_Request $request)
{
$request = $this->sign($request);
return $this->client->getIo()->makeRequest($request);
}
所以我改变了呼吁:
$httpRequest = Google_Auth_OAuth2::authenticatedRequest($request);
但它返回的错误:
致命错误:使用$这个时候不是在对象上下文
终于找到了解决方案,这里是完整的代码:
function downloadFile($service, $downloadUrl,$client) {
if ($downloadUrl) {
$request = new Google_Http_Request($downloadUrl, 'GET', null, null);
$SignhttpRequest = $client->getAuth()->sign($request);
$httpRequest = $client->getIo()->makeRequest($SignhttpRequest);
if ($httpRequest->getResponseHttpCode() == 200) {
return $httpRequest->getResponseBody();
} else {
// An error occurred.
return null;
}
} else {
// The file doesn't have any content stored on Drive.
return null;
}
}
我通过使用: – alQemist 2014-04-09 07:45:26
找到了解决方案您节省了我的一天!非常感谢你! – 2014-10-22 08:13:41
谢谢你的回答 但现在我接受另一个错误。 protected'responseHttpCode'=> int 404 while downloadFile 但我可以读取文件。 – 2012-07-28 21:21:01
我没有遇到这个错误,所以,我不能帮助你,但只是要确定:用户是否连接到驱动器?我认为这将是有益的,如果你可以把print_r的$ file和$ httpRequest – vicrabb 2012-07-29 05:58:40
我编辑我的问题。 – 2012-07-30 08:11:34