【问题标题】:Is there anyway to get private file of user with drive.file scope无论如何要获得具有 drive.file 范围的用户的私人文件
【发布时间】:2019-12-11 10:08:47
【问题描述】:

我想获取不是由我的应用程序使用访问令牌创建的用户驱动器文件(元数据、内容、downloadUrl)只有 drive.file 范围。任何人都可以为此提供解决方案吗?谢谢。

 gapi.client.load('drive', 'v3', () => {
  gapi.auth.setToken({
    access_token: user.services.google.accessToken,
    expires_in: user.services.google.expiresAt,
  });
  gapi.client.drive.files.get({
    fileId: file.id,
    fields: 'webContentLink',
  }).then( test => {
    console.log('test', test);
  })
});

【问题讨论】:

  • 您想获取您的驱动器上的驱动器文件,由您创建/拥有?如果不是,请详细说明。
  • 亲爱的@ziganotschka,在用户登录我的应用程序后,我有一个范围为 drive.file 的访问令牌。现在,我想从用户的驱动器存储中获取文件,但 drive.files 是有限的。您可以在不请求更多许可的情况下解决此问题吗?
  • 我不确定我是否正确理解了您的问题,但drive.file 只给您Per-file access to files created or opened by the app,请参见此处:developers.google.com/drive/api/v2/about-auth
  • 我了解该范围,因此我需要找到解决方案来访问不是由我的应用创建的其他文件,而无需请求更多权限,因为我的客户不希望请求范围受到限制。
  • 在这种情况下,请更好地说明您的情况。您使用的是简单的脚本、Web 应用程序还是插件?客户是在尝试访问其驱动器上的文件,还是您尝试访问客户的文件(在您的驱动器上还是在客户的驱动器上?)?文件是如何创建的?可以给个代码sn-p吗?

标签: javascript google-api google-drive-api google-api-js-client


【解决方案1】:

您需要访问用户的文件才能获取 webContentLink

您可以在脚本中加入一个允许用户与您共享文件的功能,例如:

drive.permissions.create({
    resource: {
        'type': 'user',
        'role': 'reader',
        'emailAddress': 'YOUR EMAIL'
    }, 
        fileId: file.id,
    }
...);

【讨论】:

  • 感谢您的回复,但这并不能解决我的问题。如果我调用 drive.permissions.create 它会抛出错误File not found,因为只有 drive.file 范围的访问令牌我无法访问用户的私人文件。我需要一个解决方案,比如请求获取用户的特定私人文件。
  • 不是你,是用户在上传文件的那一刻需要你对他的文件授予权限。您可以实施它,例如通过创建一个 Apps Script Web App。当用户选择他的文件时,您可以要求他按下提交按钮,这会将他重定向到 WebApp 的 URL,在该 URL 中他授予与您共享所选文件的权限。
  • 我明白了,这意味着每次用户选择私人文件时,我都会要求用户与我共享文件,对吗?您能否详细解释一下哪些 API 或如何实现共享文档的请求?我在谷歌文档中没有看到类似的东西。
  • 您熟悉 Apps Script 和 Apps Script Web App 吗? developers.google.com/apps-script/guides/web Web 应用程序允许您让您提供 URL 的任何人都可以访问您的脚本。它为您提供了一个选项,即用户单击链接(或通过浏览器重定向)以自己的身份运行脚本,因此有权与您共享他的文件。
  • 我会试试的。谢谢你。最好的问候。
猜你喜欢
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
相关资源
最近更新 更多