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);
最初の呼び出しのように、ファイルを挿入します...
2番目の呼び出しで、すべてのファイルをリストしようとしています...
リストしようとすると、挿入されたファイルしか表示されず、docs.google.com にログインしてドライブに表示された他のファイルは表示されませんでした。私はすでに6つのファイルをオンラインにしています
ドキュメントに従って、秘密鍵とサービス アカウントの電子メールを使用してサービス アカウントを作成しました。
そのファイルはどこに保存され、Googleドライブのルートにある他のすべてのファイルを一覧表示するにはどうすればよいですか?