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

huangapple go评论137阅读模式
英文:

Google people API not able to fetch emailAddresses

问题

我正在编写一个桌面应用程序,需要对Google用户进行身份验证并获取其电子邮件地址。到目前为止,使用快速入门示例,我能够进行身份验证,但是在获取用户电子邮件地址方面遇到了困难。

  1. config, err := google.ConfigFromJSON(b, people.UserEmailsReadScope)
  2. if err != nil {
  3. log.Fatalf("无法解析客户端密钥文件为配置:%v", err)
  4. }
  5. client := getClient(config)
  6. srv, err := people.NewService(ctx, option.WithHTTPClient(client))
  7. if err != nil {
  8. log.Fatalf("无法创建people客户端:%v", err)
  9. }
  10. me, err := srv.People.Get("people/me").PersonFields("emailAddresses").Do()
  11. if err != nil {
  12. log.Fatalf("无法检索用户:%v", err)
  13. }

我还尝试了UserinfoEmailScope,但没有成功。每次都收到403错误。

  1. googleapi: 错误 403: 调用者没有请求“people/me”的权限。请求需要以下范围之一:[profile]。, forbidden

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

英文:

I am writing a desktop app that needs to authenticate a google user and fetch his email id. So far with the quickstart example, I am able to authenticate but I am having a hard time fetching user email address.

  1. config, err := google.ConfigFromJSON(b, people.UserEmailsReadScope)
  2. if err != nil {
  3. log.Fatalf("Unable to parse client secret file to config: %v", err)
  4. }
  5. client := getClient(config)
  6. srv, err := people.NewService(ctx, option.WithHTTPClient(client))
  7. if err != nil {
  8. log.Fatalf("Unable to create people Client %v", err)
  9. }
  10. me, err := srv.People.Get("people/me").PersonFields("emailAddresses").Do()
  11. if err != nil {
  12. log.Fatalf("Unable to retrieve user. %v", err)
  13. }

I also tried UserinfoEmailScope but no luck. Getting 403 each time.

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

I have added all of these scopes to the project also. What am I doing wrong?

答案1

得分: 1

最后找到了解决方法。这里需要两个范围。

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

Finally figured it out. Two scopes are required for this.

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

huangapple
  • 本文由 发表于 2021年7月9日 23:54:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/68319624.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定