【问题标题】:Share uploaded files with specific user using google Drive API使用 google Drive API 与特定用户共享上传的文件
【发布时间】:2019-12-02 06:43:53
【问题描述】:

我正在尝试使用 google drive API 共享上传文件。我遵循 this 教程

上传文件/文件夹,列出驱动器文件工作正常,但我想添加共享功能,我们可以与特定用户共享文件。

我没有找到任何解决方案。如何共享文件?

【问题讨论】:

    标签: javascript google-drive-api


    【解决方案1】:
    • 您希望使用带有 Javascript 的 Drive API 共享 Google Drive 中的文件。
    • 您已经能够使用 Drive API 获取和放置 Google Drive 上的文件。

    如果我的理解是正确的,那么这个答案呢?请认为这只是几个答案之一。

    为了给文件赋予权限,使用Drive API中的“Permissions:create”方法。

    示例脚本:

    在这个示例脚本中,我为您的情况准备了createPermissions 的功能。

    function createPermissions(fileId, body) {
      gapi.client.load('drive', 'v3', function() {
        gapi.client.drive.permissions.create({
          fileId: fileId,
          resource: body,
        })
        .then(function(res) {
          console.log(res)
    
          // do something
    
        })
        .catch(function(err) {
          console.log(err)
    
          // do something
    
        });
      });
    }
    

    当您使用此功能时,请按如下方式使用。

    const fileId = "###";  // Please set the file ID.
    const body = {
      role: "writer",
      type: "user",
      emailAddress: "###"  // Please set the email address of user that you want to share.
    };
    createPermissions(fileId, body);
    
    • 使用此脚本时,请准备好要分享的文件的文件ID。
    • 在上述脚本中,文件与用户共享,其电子邮件地址为###,分别为writeruser。详细参数请查看the official document

    注意:

    • 很遗憾,在您的实际情况下,我不确定您想在脚本中的哪个位置使用上述示例脚本。所以请将其添加到您的脚本中。

    参考:

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    【讨论】:

    • 您好,非常感谢您的快速帮助。它工作正常,但需要更改 body 参数 const body = { role: "writer", type: "user", value: "###" // 请设置您要分享的用户的电子邮件地址。 };正文参数中不支持 emailAddress。我用值替换“emailAddress”,它工作正常。
    • 您好,我遇到了另一个问题。接收者还必须使用“drive.file scope”登录,并且当前能够读取它,文件已成功共享并在驱动器中收到电子邮件通知和文件显示,但是当我们尝试使用 API 时,它不起作用。跨度>
    • @Rigal 感谢您的回复。我很高兴你的问题得到了解决。关于你的新问题,来自the official documentdrive.file的范围是Per-file access to files created or opened by the app.。那么尝试使用https://www.googleapis.com/auth/drive 怎么样?虽然我很想支持你,但很遗憾,我不确定你的实际情况,所以当这没有解决你的新问题时,你可以通过包含详细信息将它作为新问题发布吗?这样,它将帮助包括我在内的用户思考您的问题。
    • 我无法发布新问题。 StackOverflow 阻止了我 2 天来提出一个新问题。请您支持这个问题。检查此链接stackoverflow.com/questions/59149984/… 谢谢
    • @Rigal 感谢您的回复。虽然我不确定您的回复,但您回复的链接是您的问题?
    猜你喜欢
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    相关资源
    最近更新 更多