Googleドライブファイルをカスタムの場所にダウンロードする方法はありますか? このコードを使用してファイルを取得していますが、
courses.get(0).getCourseMaterialSets().get(0).getMaterials().get(0).getDriveFile()
この関数は、ファイル タイプの出力を返します。ローカルに保存する方法は?
または、教室 API を使用して Google ドライブ ファイルをダウンロードする方法はありますか?
Googleドライブファイルをカスタムの場所にダウンロードする方法はありますか? このコードを使用してファイルを取得していますが、
courses.get(0).getCourseMaterialSets().get(0).getMaterials().get(0).getDriveFile()
この関数は、ファイル タイプの出力を返します。ローカルに保存する方法は?
または、教室 API を使用して Google ドライブ ファイルをダウンロードする方法はありますか?
Classroom API を使用してこれを行う方法はないと思います。Google ドライブからファイルをダウンロードするには、Android API for Driveを使用したファイルのダウンロードのチュートリアルを確認してください。
ファイルのダウンロード
推奨される方法: alt=media を使用
ファイルをダウンロードするには、ファイルのリソース URL に対して承認済みの HTTP GET 要求を行い、クエリ パラメーター alt=media を含めます。例えば:
GET https://www.googleapis.com/drive/v2/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media
承認: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs ファイルをダウンロードするには、ユーザーに少なくとも読み取りアクセス権が必要です。さらに、ファイル コンテンツの読み取りを許可するスコープでアプリを承認する必要があります。たとえば、drive.readonly.metadata スコープを使用するアプリは、ファイル コンテンツのダウンロードを承認されません。編集権限を持つユーザーは、制限付きラベルを true に設定することで、読み取り専用ユーザーによるダウンロードを制限できます。
ガイドのスニペットは次のとおりです。
/**
* Download a file's content.
*
* @param service Drive API service instance.
* @param file Drive File instance.
* @return InputStream containing the file's content if successful,
* {@code null} otherwise.
*/
private static InputStream downloadFile(Drive service, File file) {
if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {
try {
// uses alt=media query parameter to request content
return service.files().get(file.getId()).executeMediaAsInputStream();
} catch (IOException e) {
// An error occurred.
e.printStackTrace();
return null;
}
} else {
// The file doesn't have any content stored on Drive.
return null;
}
}