2016-05-20 20 views
0

iOS(Objective-C)コードが好きですが、質問はGoogleドライブAPIとリンクしています。したがって、他のプログラミング言語のソリューションがここに属している可能性があります。最新のSDKを使用してGoogleドライブからファイルをダウンロードしますか?

私の以前のコード:

GTLQueryDrive *query = [GTLQueryDrive queryForFilesList]; 
query.q = ...; 
... //send query and get links to files 

しかし、それだけでGoogleドライブAPI v2の中で正しかった - クエリがGTLDriveFileオブジェクトとGTLDriveFile含まれるフィールドdownloadUrlのリストを返しました。

GoogleドライブAPI v3にはこのようなフィールドがありません。this documentによると、queryForFilesGetWithFileId:で追加のリクエストを実行し、2つの結果をリンクする必要があります。この問題を解決するには?

答えて

1

を参照すると、実行するダウンロードの種類に応じて、次のいずれかのURLが使用されます。ダウンロード

  • alt=mediaファイルリソースとfiles.getとGoogleドキュメントをエクスポートする - -

    • は、ファイルをダウンロードしfiles.export
    • リンクファイルへのユーザー - たとえば、ファイルリソース

    からwebContentLinkを、 alt=mediaを使用してファイルをダウンロードするには、許可されたHTTP GET要求をファイルのリソースURLに作成し、クエリパラメータalt = mediaを含めます。

    GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media 
    Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs 
    

    前述のように、ファイルの内容を読み取ることができるスコープでアプリを承認する必要があります。 drive.readonly.metadataスコープを使用するアプリは、ファイルのコンテンツをダウンロードする権限がありません。編集権限を持つユーザは、viewersCanCopyContentフィールドをtrueに設定して読み取り専用ユーザによるダウンロードを制限することができます。

    特定の種類のダウンロードを実行するための詳細な手順については、ドキュメントを確認してください。

  • 関連する問題