0

Googleドライブファイルをカスタムの場所にダウンロードする方法はありますか? このコードを使用してファイルを取得していますが、

courses.get(0).getCourseMaterialSets().get(0).getMaterials().get(0).getDriveFile()

この関数は、ファイル タイプの出力を返します。ローカルに保存する方法は?

または、教室 API を使用して Google ドライブ ファイルをダウンロードする方法はありますか?

4

1 に答える 1

0

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;
    }
  }
于 2016-10-14T14:42:44.563 に答える