Dokumen ini menjelaskan cara menerapkan dukungan drive bersama di aplikasi Anda menggunakan Google Drive API.
Drive bersama mengikuti model organisasi, berbagi, dan kepemilikan yang berbeda dari Drive Saya. Jika aplikasi Anda akan membuat dan mengelola file di drive bersama, Anda harus menerapkan dukungan drive bersama di aplikasi Anda. Kompleksitas penerapan Anda bergantung pada fungsi aplikasi Anda.
Untuk memulai, Anda harus menyertakan parameter kueri supportsAllDrives=true dalam
permintaan saat aplikasi Anda melakukan operasi berikut:
Drive API v3
files.getfiles.listfiles.createfiles.updatefiles.copyfiles.deletechanges.listchanges.getStartPageTokenpermissions.listpermissions.getpermissions.createpermissions.updatepermissions.delete
Drive API v2
files.getfiles.listfiles.insertfiles.updatefiles.patchfiles.copyfiles.trashfiles.untrashfiles.deletefiles.touchchildren.insertparents.insertchanges.listchanges.getStartPageTokenchanges.getpermissions.listpermissions.getpermissions.insertpermissions.updatepermissions.patchpermissions.delete
Parameter supportsAllDrives=true memberi tahu Google Drive bahwa aplikasi Anda dirancang untuk menangani file di drive bersama.
Aplikasi yang membaca atau mengubah izin, melacak perubahan, atau menelusuri beberapa korpora memerlukan kemampuan drive bersama tambahan. Bagian selanjutnya dari dokumen ini menjelaskan perubahan tambahan yang diperlukan untuk melakukan tugas ini.
Menelusuri konten di drive bersama
Gunakan metode list pada resource files untuk menemukan file pengguna di drive bersama. Untuk
menelusuri drive bersama, lihat Menelusuri drive bersama.
Metode list berisi parameter kueri khusus drive bersama berikut:
driveId: ID drive bersama yang akan ditelusuri.corpora: Isi item (file atau dokumen) yang menjadi cakupan kueri. Badan yang didukung adalahuser,domain,drive, danallDrives. Lebih memilihuserataudrivedaripadaallDrivesuntuk efisiensi. Secara default, korpus disetel keuser.includeItemsFromAllDrives: Apakah item Drive Saya dan drive bersama harus disertakan dalam hasil. Jika tidak ada atau disetel ke salah (false), item drive bersama tidak akan ditampilkan.supportsAllDrives: Apakah aplikasi yang meminta mendukung Drive Saya dan drive bersama. Jika salah (false), item drive bersama tidak disertakan dalam respons.
Mode kueri berikut khusus untuk drive bersama:
includeItemsFromAllDrives |
corpora |
Deskripsi kueri |
|---|---|---|
true |
user |
Mengueri file yang telah diakses pengguna, termasuk file drive bersama dan file Drive Saya. |
true |
domain |
Mengueri file yang dibagikan ke domain, termasuk file drive bersama dan file Drive Saya. |
true |
drive |
Mengirim kueri semua item di drive bersama yang ditentukan. driveId harus ditentukan dalam permintaan. |
true |
allDrives |
Mengueri file yang telah diakses pengguna dan semua drive bersama yang penggunanya adalah anggota. Perhatikan bahwa respons mungkin menyertakan incompleteSearch:true, yang menunjukkan bahwa beberapa korpus tidak ditelusuri untuk permintaan ini. |
Contoh kode berikut menunjukkan cara menelusuri file di semua drive bersama serta Drive Saya:
Python
files = []
page_token = None
while True:
response = drive_service.files().list(
q="mimeType='application/vnd.google-apps.folder'",
spaces='drive',
corpora='allDrives',
supportsAllDrives=True,
includeItemsFromAllDrives=True,
fields='nextPageToken, files(id, name)',
pageToken=page_token
).execute()
files.extend(response.get('files', []))
page_token = response.get('nextPageToken', None)
if not page_token:
break
Node.js
let files = [];
let pageToken = null;
do {
const response = await drive_service.files.list({
q: "mimeType='application/vnd.google-apps.folder'",
spaces: 'drive',
corpora: 'allDrives',
supportsAllDrives: true,
includeItemsFromAllDrives: true,
fields: 'nextPageToken, files(id, name)',
pageToken: pageToken
});
files = files.concat(response.data.files);
pageToken = response.data.nextPageToken;
} while (pageToken);
Java
List<File> files = new ArrayList<>();
String pageToken = null;
do {
FileList result = driveService.files().list()
.setQ("mimeType='application/vnd.google-apps.folder'")
.setSpaces("drive")
.setCorpora("allDrives")
.setSupportsAllDrives(true)
.setIncludeItemsFromAllDrives(true)
.setFields("nextPageToken, files(id, name)")
.setPageToken(pageToken)
.execute();
files.addAll(result.getFiles());
pageToken = result.getNextPageToken();
} while (pageToken != null);
curl
curl -X GET \
'https://www.googleapis.com/drive/v3/files?corpora=allDrives&includeItemsFromAllDrives=true&supportsAllDrives=true&fields=nextPageToken%2Cfiles(id%2Cname)' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
Ganti ACCESS_TOKEN dengan token OAuth 2.0 aplikasi Anda.
Memantau perubahan di drive bersama
Gunakan metode list pada resource changes untuk memantau perubahan di drive bersama. Untuk
mengetahui informasi selengkapnya, lihat Melacak perubahan untuk pengguna dan drive bersama.
Metode list berisi parameter kueri khusus drive bersama berikut:
driveId: Drive bersama tempat perubahan ditampilkan. Jika ditentukan, ID perubahan merujuk pada perubahan pada item dalam drive bersama yang memberikan status file saat ini. Untuk merujuk pada perubahan drive bersama tertentu, ID drive bersama dan ID perubahan harus digunakan sebagai ID.includeItemsFromAllDrives: Apakah file atau perubahan drive bersama harus disertakan dalam daftar perubahan.supportsAllDrives: Apakah aplikasi yang meminta mendukung drive bersama. Jika salah (false), item drive bersama, termasuk drive bersama dan file dalam drive bersama, tidak akan ditampilkan.
Mode kueri berikut khusus untuk drive bersama:
includeItemsFromAllDrives |
driveId |
Deskripsi kueri |
|---|---|---|
true |
Tidak | Perubahan mencerminkan perubahan pada file di dalam atau di luar drive bersama yang telah diakses pengguna, serta perubahan pada drive bersama tempat pengguna menjadi anggota. |
true |
Ya | Perubahan mencerminkan perubahan pada drive bersama tertentu yang ditentukan dan item di dalam drive bersama tersebut. |
Contoh kode berikut menunjukkan cara melacak perubahan di drive bersama:
Python
# 1. Get the start page token for the shared drive.
response = drive_service.changes().getStartPageToken(
supportsAllDrives=True,
driveId='SHARED_DRIVE_ID'
).execute()
start_page_token = response.get('startPageToken')
# 2. List changes starting from the page token.
response = drive_service.changes().list(
pageToken=start_page_token,
supportsAllDrives=True,
includeItemsFromAllDrives=True,
driveId='SHARED_DRIVE_ID'
).execute()
changes = response.get('changes', [])
Node.js
// 1. Get the start page token for the shared drive.
const tokenResponse = await drive_service.changes.getStartPageToken({
supportsAllDrives: true,
driveId: 'SHARED_DRIVE_ID'
});
const startPageToken = tokenResponse.data.startPageToken;
// 2. List changes starting from the page token.
const response = await drive_service.changes.list({
pageToken: startPageToken,
supportsAllDrives: true,
includeItemsFromAllDrives: true,
driveId: 'SHARED_DRIVE_ID'
});
const changes = response.data.changes;
Java
// 1. Get the start page token for the shared drive.
StartPageToken tokenResult = driveService.changes().getStartPageToken()
.setSupportsAllDrives(true)
.setDriveId("SHARED_DRIVE_ID")
.execute();
String startPageToken = tokenResult.getStartPageToken();
// 2. List changes starting from the page token.
ChangeList changesResult = driveService.changes().list(startPageToken)
.setSupportsAllDrives(true)
.setIncludeItemsFromAllDrives(true)
.setDriveId("SHARED_DRIVE_ID")
.execute();
List<Change> changes = changesResult.getChanges();
curl
# 1. Get the start page token for the shared drive.
curl -X GET \
'https://www.googleapis.com/drive/v3/changes/startPageToken?supportsAllDrives=true&driveId=SHARED_DRIVE_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
# 2. List changes starting from the page token.
curl -X GET \
'https://www.googleapis.com/drive/v3/changes?pageToken=START_PAGE_TOKEN&supportsAllDrives=true&includeItemsFromAllDrives=true&driveId=SHARED_DRIVE_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
Ganti kode berikut:
- SHARED_DRIVE_ID: ID drive bersama.
- ACCESS_TOKEN: Token OAuth 2.0 aplikasi Anda.
- START_PAGE_TOKEN: Token halaman awal untuk drive bersama.
Ganti SHARED_DRIVE_ID dengan ID drive bersama
Mengaktifkan dukungan drive bersama di UI Drive
Untuk mengakses konten drive bersama menggunakan UI Drive, pastikan Anda telah mencentang kotak Dukungan drive bersama di tab Integrasi UI Drive pada Google Drive API di Konsol Google Cloud. Untuk informasi selengkapnya, lihat Mengonfigurasi integrasi UI Drive.
Menggunakan Pemilih Google dengan drive bersama
Pemilih Google mendukung pemilihan item di drive bersama. Untuk mengetahui detail tentang cara mengaktifkan dukungan drive bersama dan menambahkan tampilan drive bersama di pemilih, lihat Google Picker API.