You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

能否通过Google Drive API使用OAuth2 Subject而非邮箱地址分享文件?

能否通过Google Drive API使用OAuth2 Subject而非邮箱地址分享文件?

嗨,根据你遇到的情况以及Google Drive API的官方规则,很遗憾地告诉你——你没办法直接用OAuth2返回的subject来分享文件给用户

Google Drive API的权限管理逻辑里明确规定了:

当你创建type=user或type=group的权限时,必须提供emailAddress来关联具体的用户或群组。

简单来说,Drive的分享系统是基于用户的邮箱(或者说与Google账号绑定的邮箱身份)来识别接收者的,而OAuth2返回的subject只是授权流程里用来唯一标识用户的内部ID,并没有和Drive的权限体系打通,所以没法直接用它来指定分享对象。

那你现在有两个可行的解决方向:

  • 调整OAuth授权流程,添加https://www.googleapis.com/auth/userinfo.email这个权限范围,这样在用户登录时就能获取到他们的邮箱地址,后续创建分享权限时直接用这个邮箱就可以了。
  • 如果不想一开始就请求邮箱权限,也可以在用户登录后,单独引导他们输入自己的邮箱地址,再用这个输入的邮箱来设置文件分享。不过这种方式需要额外处理用户输入错误的情况,体验上不如直接通过OAuth获取来得顺畅。

备注:内容来源于stack exchange,提问作者Ralph Sleigh

火山引擎 最新活动