2

特定のフォルダーの内容をリストする 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());
}

このような初歩的な質問をして申し訳ありませんが、これは私を夢中にさせています ありがとう

PS記録のために、私はこのgoogle-api-php-client/wiki/OAuth2#Service_Accountsに従いました

4

1 に答える 1

0

ドキュメントをもう一度確認したところ、Googleドライブがサービスアカウントをサポートしていないことがわかりました。これが変更されるかどうかはわかりませんが、私が持っている要件では(エンドユーザーがデスクトップアプリを使用して(パブリックである)フォルダーにアップロードするものをWebに表示する必要があります)使用できないと思います有効なソリューションとしてのグーグルドライブ。

解決策を見つけましたが、トークンを永久に更新する必要があるため、あまり好きではありません。GoogleドライブSDKサービスアカウントエラー

于 2012-07-31T09:43:31.333 に答える