2016-10-13 15 views
0

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

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

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

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

答えて

0

Classroom APIを使用してこれを行う方法はないと思います。 Googleドライブからファイルをダウンロードするには、Android API for Driveを使用してダウンロードファイルのチュートリアルを確認してください。ファイルのダウンロード

好ましい方法:使用してALT =メディア

ファイルをダウンロードするには、あなたが ファイルのリソースURLに許可HTTP GETリクエストを作成し、クエリパラメータのALTが含ま=メディア。

GET https://www.googleapis.com/drive/v2/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media 

認証: たとえばベアラファイル をダウンロード 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; 
    } 
    } 
関連する問題