使用NodeJS从Google云端硬盘下载共享文件时出现访问错误

时间:2018-01-06 15:44:59

标签: node.js google-api

我正在尝试构建一个使用googleapis npm包的节点js应用程序,并观看共享的google驱动器文件夹并自动下载新的或修改过的文件。我可以访问该文件夹并查看文件,但是当我尝试下载时,我得到了这个响应(appid和fileid编辑):

 errors:
   [ { domain: 'global',
       reason: 'appNotAuthorizedToFile',
       message: 'The user has not granted the app read access to the file .',
       locationType: 'header',
       location: 'Authorization' } ] }

我已经在Google Drive API上授权了我的应用程序(这就是为什么它可以成功查看文件),但我无法弄清楚我需要做些什么来授予它下载这些公开共享文件的权限。我已经在Google API网站上推出了文档,但仍然无法理解。我想避免使用文件选择器,因为我希望自动使该过程:它看到一个新的/修改过的文件,然后下载它。有什么建议?

1 个答案:

答案 0 :(得分:1)

可能是您的客户端应用使用了错误的scope,只允许您查看文件元数据。因此,您只能列出文件,但无法下载。

尝试将范围更改为允许您读取文件内容的内容(例如https://www.googleapis.com/auth/drive.readonly)。您可以按照Node.js quickstart示例查看范围的处理方式。

请记住,当您更改范围时,您还需要获得新的访问令牌。