使用Google API获取用户电子邮件的最佳方式是什么?

时间:2016-02-12 17:57:22

标签: python email oauth gmail gmail-api

我正在用gmail api编写一个程序,我遇到的一个问题是获取当前授权用户的电子邮件地址。我认为我可以使用https://www.googleapis.com/auth/userinfo.email中的UPDATE范围执行此操作,但是当我在Google的OAuth Playground中尝试使用时,它会请求“知道您在Google上的身份”的权限以及查看您的电子邮件的权限地址。该程序不需要知道用户的姓名/信息等,只需要电子邮件地址。

我甚至试图使用userinfo.email范围的原因是因为看了一段时间后我无法在gmail范围内找到获取用户电子邮件的方法但是如果有更好的方法。

1 个答案:

答案 0 :(得分:4)

您可以使用getProfile - 方法,为此您需要以下范围之一:

https://mail.google.com/
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.compose
https://www.googleapis.com/auth/gmail.readonly

然后您就可以获得电子邮件地址:

请求

GET https://www.googleapis.com/gmail/v1/users/me/profile?fields=emailAddress&access_token={ACCESS_TOKEN}

<强>响应

{
 "emailAddress": "foo@gmail.com"
}

在Python中,这看起来像:

profile = gmail_service.users().getProfile(userId='me').execute()

print 'Email address of user is: %s' % profile['emailAddress']