如何使用谷歌驱动器api for url的URL从谷歌驱动器下载文本文件

时间:2015-05-07 14:27:43

标签: android google-drive-api

我已将文本文件上传到我的google云端硬盘帐户并且已公开。我通过共享链接获得了该文件的链接。

我想要做的是使用我获得的链接使用驱动器API从驱动器下载该文件。然后将该文件存储在用户移动的内部存储中以备将来使用。 如何使用API​​完成此操作?

我在google开发者控制台中注册了我的项目,并为项目创建了一个公共API访问。

请指导我如何获取文件。

1 个答案:

答案 0 :(得分:2)

有两种不同的API可以从Android访问Google云端硬盘。 GDAAREST API。您需要 REST ,因为GDAA仅支持FILE范围(即只能看到Android应用创建的文件/文件夹)。
假设您询问的是“可共享链接”,如下所示:

https://drive.google.com/file/d/0B1mQ................cW90ODA/view?usp=sharing

下面的网址部分(大部分原始内容被点替换,以保持我的内容私密):

  

0B1mQ ................ cW90ODA

是REST中用于检索文件,文件夹的实际(资源)ID。请参阅以下代码段:

 /*************************************************************************
   * get file contents
   * @param resId  file driveId
   * @return       file's content  / null on fail
   */
  static byte[] read(String resId) {
    byte[] buf = null;
    if (mGOOSvc != null && mConnected && resId != null) try {
      File gFl = mGOOSvc.files().get(resId).setFields("downloadUrl").execute();
      if (gFl != null){
        String strUrl = gFl.getDownloadUrl();
        InputStream is = mGOOSvc.getRequestFactory()
        .buildGetRequest(new GenericUrl(strUrl)).execute().getContent();
        buf = UT.is2Bytes(is);
      }
    } catch (Exception e) { UT.le(e); }
    return buf;
  }

RESTGDAA/REST demo here类中脱离上下文。

您无需费心使用该演示版,您可以在playground here(页面底部)进行测试。

祝你好运