Google Drive PHP API V2列出时没有结果

时间:2012-07-30 22:38:12

标签: php google-drive-api

我正在为joomla创建一个列出给定文件夹内容的模块。此模块用作服务,因此不需要OAuth。 我被困了,因为我提出的每个请求都有相同的答案,没有任何项目。所以我想知道我是否以错误的方式创建客户端/服务,或者我可能以错误的方式注册了应用程序。 这是代码:

// this class is where I have all the IDs from the google console
require_once(dirname(__FILE__) . '/gdrive/config.php');
require_once(dirname(__FILE__) . '/gdrive/gd-v2-php/apiClient.php');
require_once(dirname(__FILE__) . '/gdrive/gd-v2-php/contrib/apiDriveService.php');

$client = new apiClient();
$key    = file_get_contents(Config::KEY_FILE);
$client->setClientId(Config::CLIENT_ID);

$client->setUseObjects(true);
$client->setAssertionCredentials(new apiAssertionCredentials(
    Config::SERVICE_ACCOUNT_NAME,
    array('https://www.googleapis.com/auth/drive'), $key)
);

$service = new apiDriveService($client);

try {
    $parameters = array();
    $parameters['maxResults'] = $maxResults;

    $files = $service->files->listFiles($parameters);

    $items = $files->getItems();
    var_dump($items);
    $pageToken = $files->getNextPageToken();
} catch (apiServiceException $e) {
    print "Error code :" . $e->getCode() . "\n";
    // Error message is formatted as "Error calling <REQUEST METHOD> <REQUEST URL>: (<CODE>) <MESSAGE OR REASON>".
    print "Error message: " . $e->getMessage() . "\n";    
} catch (apiException $e) {
    // Other error.
    print "An error occurred: (" . $e->getCode() . ") " . $e->getMessage() . "\n";
} catch (Exception $e) {
    print "Cannot retrieve the files";
    print($e->getMessage());
}

很抱歉问这样一个noob问题,但这让我发疯了 感谢

P.S。仅供记录,我按照此google-api-php-client/wiki/OAuth2#Service_Accounts

1 个答案:

答案 0 :(得分:0)

在再次查看文档后,我发现Google云端硬盘不支持服务帐户。我不知道这是否会改变但是,根据我的要求(我需要在网上显示最终用户使用桌面应用程序上传到文件夹(这是公共的))我想我不能使用谷歌驱动器作为有效的解决方案。

我找到了一个解决方案,但我不喜欢,因为我必须永远刷新令牌Google Drive SDK Service Account Error