0

GoogleドライブAPIを使用してテキストファイルを挿入しました...

ビルド サービス

function buildService() {

$DRIVE_SCOPE = 'https://www.googleapis.com/auth/drive';
$SERVICE_ACCOUNT_EMAIL = 'xxxx@developer.gserviceaccount.com';

if($_SERVER['HTTP_HOST'] == 'localhost')
$SERVICE_ACCOUNT_PKCS12_FILE_PATH = 'xxxxxxxx-privatekey.p12';
else
$SERVICE_ACCOUNT_PKCS12_FILE_PATH = $_SERVER['DOCUMENT_ROOT'].'/xxxxx-privatekey.p12';

  $key = file_get_contents($SERVICE_ACCOUNT_PKCS12_FILE_PATH);
  $auth = new Google_AssertionCredentials(
      $SERVICE_ACCOUNT_EMAIL,
      array($DRIVE_SCOPE),
      $key);
  $client = new Google_Client();
  $client->setUseObjects(true);
  $client->setAssertionCredentials($auth);
  return new Google_DriveService($client);
}

ファイルの取得

function retrieveAllFiles($service) {
  $result = array();
  $pageToken = NULL;

  do {
    try {
      $parameters = array();
      if ($pageToken) {
        $parameters['pageToken'] = $pageToken;
      }
      $files = $service->files->listFiles($parameters);

      $result = array_merge($result, $files->getItems());
      $pageToken = $files->getNextPageToken();
    } catch (Exception $e) {
      print "An error occurred: " . $e->getMessage();
      $pageToken = NULL;
    }
  } while ($pageToken);
  return $result;
}

インスタンスの作成と挿入

$service = buildService();

$file = new Google_DriveFile();
$file->setTitle('My document');
$file->setDescription('A test document');
$file->setMimeType('text/plain');

$data = "contents";

$createdFile = $service->files->insert($file, array('data' => $data,'mimeType' =>'text/plain',));

print_r($createdFile);

echo '<br>------<br>';

ファイルの取得

$ret = retrieveAllFiles($service);

echo '<pre>';
print_r($ret);
  1. 最初の呼び出しのように、ファイルを挿入します...

  2. 2番目の呼び出しで、すべてのファイルをリストしようとしています...

  3. リストしようとすると、挿入されたファイルしか表示されず、docs.google.com にログインしてドライブに表示された他のファイルは表示されませんでした。私はすでに6つのファイルをオンラインにしています

  4. ドキュメントに従って、秘密鍵とサービス アカウントの電子メールを使用してサービス アカウントを作成しました。

そのファイルはどこに保存され、Googleドライブのルートにある他のすべてのファイルを一覧表示するにはどうすればよいですか?

4

1 に答える 1

1

サービス アカウントで表されるアプリケーション所有のアカウントにファイルを挿入しています。

別のドメイン ユーザーのドライブ アカウントで (挿入/リスト/...) ファイルを管理する場合は、ドメイン全体の委任を実行する必要があります: https://developers.google.com/drive/delegation

于 2013-02-11T20:48:46.820 に答える