2017-06-02 6 views
0

Googleスプレッドシートを編集するためにGoogleスプレッドシートAPI V4とGoogleドライブAPI V2を使用するアンドロイドアプリを作成しています。しかし、私は問題を抱えています。スプレッドシートがデバイスにログインしているユーザーと共有されているかどうか、またスプレッドシートを編集できるのか、所有者であるのかを確認する必要があります。私は
Boolean canEdit = driveService.files().get(fileId).execute().getEditable();

Boolean canEdit = driveService.files() .get(fileId).execute().getCapabilities().getCanEdit();
を試してみましたが、それらの両方は、ユーザがファイルを所有している場合のみ動作するように見えます。私はそれがコマンドfiles().get(id)がユーザーのドライブ内のファイルを取得できるためだと思います。ユーザーと共有されるファイルはありません。私も試しました
String role = driveService.permissions().get(fileId, driveService .about().get().execute().getPermissionId()).execute().getRole();
しかし、これはまた、ユーザーのドライブ内のファイルを探しているようです。ユーザーが所有者でない場合、これらのコマンドはすべて404 Not Foundをスローします。
私を助けてください!GoogleドライブAPIファイルが共有されているかどうかを確認します

答えて

0

Handling API Errorsで説明したように、404: File not foundは、ユーザーがファイルへの読み取りアクセス権を持っていない可能性があります。

また、AFAIKでは、ユーザーデータへのアクセスが必要な要求には、特定のアクセス範囲が必要です。ただし、Authorizing Android Appsに記載されているように、GoogleドライブAndroid APIは現在、drive.filedrive.appfolderの承認範囲のみをサポートしています。

Google APIs Java Clientを使用してリクエストを承認し、代わりにGoogleドライブのウェブサービスsearch for filesを使用して共有したい場合があります。

関連する問題