微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

谷歌人员 API 无法获取电子邮件地址

如何解决谷歌人员 API 无法获取电子邮件地址

我正在编写一个桌面应用程序,需要对谷歌用户进行身份验证并获取他的电子邮件 ID。到目前为止,使用快速入门示例,我能够进行身份验证,但很难获取用户电子邮件地址。

config,err := google.ConfigFromJSON(b,people.UserEmailsReadScope)
if err != nil {
    log.Fatalf("Unable to parse client secret file to config: %v",err)
}
client := getClient(config)

srv,err := people.NewService(ctx,option.WithHTTPClient(client))
if err != nil {
    log.Fatalf("Unable to create people Client %v",err)
}
me,err := srv.People.Get("people/me").PersonFields("emailAddresses").Do()

if err != nil {
    log.Fatalf("Unable to retrieve user. %v",err)
}

我也尝试过 UserinfoEmailScope,但没有成功。每次都得到 403。

googleapi: Error 403: The caller does not have permission to request "people/me". Request requires one of the following scopes: [profile].,forbidden

我也将所有这些范围添加到了项目中。我做错了什么?

解决方法

终于明白了。为此需要两个范围。

config,err := google.ConfigFromJSON(b,people.UserinfoProfileScope,people.UserinfoEmailScope)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。