Google drive api 是否可以通过Google Drive API通过电子邮件发送指向可编辑电子表格的链接,而无需登录Google帐户?

Google drive api 是否可以通过Google Drive API通过电子邮件发送指向可编辑电子表格的链接,而无需登录Google帐户?,google-drive-api,Google Drive Api,我希望能够通过驱动API向某人发送电子邮件,其中包含一个链接,允许他们在谷歌文档上编辑电子表格,而无需他们登录或注册谷歌帐户 我在Scala中的第一次尝试,使用Java客户端: def share1(driveService: Drive, file: File, emailOfPersonToShareWith : String, emailMessage: String) = { val writerPermission = new Permission() .se

我希望能够通过驱动API向某人发送电子邮件,其中包含一个链接,允许他们在谷歌文档上编辑电子表格,而无需他们登录或注册谷歌帐户

我在Scala中的第一次尝试,使用Java客户端:

  def share1(driveService: Drive, file: File, emailOfPersonToShareWith : String, emailMessage: String) = {

    val writerPermission = new Permission()
      .setType("user")
      .setRole("writer")
      .setValue(emailOfPersonToShareWith)

    val insert = driveService.permissions().insert(file.getId, writerPermission)
    insert.setSendNotificationEmails(true)
    insert.setEmailMessage(emailMessage)

    insert.execute()
}
这会发送通知电子邮件,但发送的链接允许收件人在不登录的情况下查看电子表格,但不允许他们在不登录的情况下编辑电子表格

通过使文档对任何具有该链接的人都可编辑,似乎可以获得具有所需行为的链接:

  def share2(driveService: Drive, file: File, emailOfPersonToShareWith : String, emailMessage: String) = {

    val editableByAnyone = new Permission()
      .setType("anyone")
      .setRole("writer")
      .setWithLink(true)

    val insert = driveService.permissions().insert(file.getId, editableByAnyone)
    insert.execute()

    file.getAlternateLink //this link now has the desired behaviour

  }
但在这种情况下,我无法发送通知电子邮件,因为该选项仅在与用户或组共享时可用。如果在使用该链接使文档对任何人都可编辑后,我调用我的原始share1方法为“emailOfPersonToShareWith”设置“writer”权限,则发送电子邮件的链接在未登录的情况下仍然不可编辑。电子邮件链接包含一个invite URL参数,该参数似乎会触发此行为


是否有任何方法可以通过SDK向某人发送通知电子邮件,其中包含可编辑的链接,而无需登录,也无需向任何具有该链接的人编辑文档?否则,如果我将文档标记为可编辑,则是否可以通过SDK发送此电子邮件?

如果任何人都可以通过链接访问文档,则无法发送驱动器API通知电子邮件,因为您没有指定电子邮件。。任何人都可以访问该链接。在您使用share2函数共享文档后,您可以做的是发送您自己的个性化邮件。在python中,这是我用来发送个性化通知电子邮件的: