如何从谷歌驱动器文件中获取文本数据?

时间:2014-03-18 06:44:43

标签: google-drive-api

我想索引我的谷歌驱动器数据,因为我需要从我的谷歌驱动器文件中获取文本内容。我正在使用List api来获取文件,我能够获得标题和mimetype以及所有数据但我无法通过使用此API获取全文或内容或文本数据。我只得到以下的东西。

{kind:'drive#file',

   id: '0BwWXsHdw22TDMlJyTTZfbnM1cnFBTXdDWlFteEg1dFB3RFN3',
   etag: '"KYLl3b7q6n8KW2kbVvK9NFUdVkc/MTM5NDY4OTY1NDM0MA"',
   openWithLinks: [Object],
   iconLink: 'https://ssl.gstatic.com/docs/doclist/images/icon_10_word_list.png',
   thumbnailLink: https://lh4.googleusercontent.com/iyq9t99atUoaWlf7N75mSalyoh5gvK6YAeDIx5iAqJZFtX4iMIouOI4VGySCqsEYFXC3f9v9aqSqUolS5IZ7YeQ=s220',
   title: 'OpenVPN Client Configuration on Ubuntu.docx',
   mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
   labels: [Object],
   createdDate: '2014-01-24T12:58:38.000Z',
   modifiedDate: '2014-03-13T05:47:34.340Z',
   modifiedByMeDate: '2014-03-13T05:47:34.340Z',
   lastViewedByMeDate: '2014-03-13T05:52:37.684Z',
   parents: [Object],
   userPermission: [Object],
   originalFilename: 'OpenVPN Client Configuration on Ubuntu.docx',
   fileExtension: 'docx',
   md5Checksum: 'ecd71a2b9315ed67299003dacda8c3f0',
   fileSize: '290094',
   quotaBytesUsed: '290094',
   ownerNames: [Object],
   owners: [Object],
   lastModifyingUserName: '******',
   lastModifyingUser: [Object],
   editable: true,
   copyable: true,
   writersCanShare: true,
   shared: false,
   appDataContents: false,
   headRevisionId: '0BwWXsHdw22TDV2RuWlpjWmZzRVp5ZTVSQUJSZ012Mkw4K0hVPQ' } ] }

我也试过.file api但是这个也没用。 Plz帮我解决这个问题。

我想用nodejs做。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

由于某些原因,我在上面的列表中没有看到 downloadUrl 字段。您可以go here并尝试一下“尝试”#39}。在底部,以获得恰到好处的请求。在我的基于java的代码中,我记得像两步过程:

1 /获取列表

Drive  _svc;
FileList _gooLst = _svc.files().list().setMaxResults(MAX_DOWN).setQ(_rqst)
             .setFields("items(id,title,downloadUrl)").execute();

for (File f : _gooLst.getItems()){ 
  f.getId(); 
  f.getTitle(); 
  String foo = f.getDownloadUrl();
}

这是'列表'请求,请注意您应该限制列表中的字段,这样您就不会阻塞管道

2 /从 downloadUrl

获取内容
    InputStream is = _svc.getRequestFactory().buildGetRequest(
                      new GenericUrl(foo)).execute().getContent();     

最后,解析流以获得您的......无论您需要什么。