2017-06-02 1 views
0

Ich erstelle eine Android-App, die Google Tabellen API V4 und Google Drive API V2 zum Bearbeiten einer Google-Tabelle verwendet. Aber ich habe ein Problem. Ich muss überprüfen können, ob das Arbeitsblatt für den Benutzer freigegeben ist, der am Gerät angemeldet ist und ob er es bearbeiten kann oder ob es sich um einen Eigentümer handelt. Ich habe versucht,
Boolean canEdit = driveService.files().get(fileId).execute().getEditable();
und
Boolean canEdit = driveService.files() .get(fileId).execute().getCapabilities().getCanEdit();
aber diese beiden scheinen nur zu funktionieren, wenn der Benutzer die Datei besitzt. Ich denke, dass das ist, weil der Befehl files().get(id) nur die Dateien im Laufwerk des Benutzers erhalten kann; keine Dateien, die mit dem Benutzer geteilt werden. Ich habe auch versucht,
String role = driveService.permissions().get(fileId, driveService .about().get().execute().getPermissionId()).execute().getRole();
, aber dies scheint auch nur für Dateien in den Benutzern Laufwerk suchen. Alle diese Befehle geben 404 Not Found aus, wenn der Benutzer kein Eigentümer ist.
Bitte helfen Sie mir!Google Drive-API Überprüfen, ob die Datei für mich freigegeben ist

Antwort

0

Wie in Handling API Errors, 404: File not found diskutiert, könnte sein, dass der Benutzer keinen Lesezugriff auf eine Datei hat.

Und AFAIK, Anforderungen, die Zugriff auf Benutzerdaten benötigt, erfordert einen bestimmten Umfang des Zugriffs. Wie in Authorizing Android Apps erwähnt, unterstützt die Google Drive Android API derzeit jedoch nur die Berechtigungsbereiche drive.file und drive.appfolder.

Mit diesem möchten Sie möglicherweise Ihre Anfragen mit der Google APIs Java Client autorisieren und stattdessen den Google Drive-Web-Service zu , die für Sie freigegeben sind.

Verwandte Themen