Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用GoogleAPI获取用户的最佳方式是什么;s电子邮件?_Python_Email_Oauth_Gmail_Gmail Api - Fatal编程技术网

Python 使用GoogleAPI获取用户的最佳方式是什么;s电子邮件?

Python 使用GoogleAPI获取用户的最佳方式是什么;s电子邮件?,python,email,oauth,gmail,gmail-api,Python,Email,Oauth,Gmail,Gmail Api,我正在用gmail api编写一个程序,遇到的一个问题是获取当前授权用户的电子邮件地址。我想我可以用scopehttps://www.googleapis.com/auth/userinfo.email如中所述,但当我在谷歌的OAuth游乐场上尝试时,它会请求“知道你在谷歌上是谁”的权限以及查看你的电子邮件地址的权限。该程序不需要知道用户的姓名/信息等,它只需要电子邮件地址 我之所以尝试使用userinfo.email作用域,是因为我在gmail作用域中找不到获取用户电子邮件的方法,但如果有更好

我正在用gmail api编写一个程序,遇到的一个问题是获取当前授权用户的电子邮件地址。我想我可以用scope
https://www.googleapis.com/auth/userinfo.email
如中所述,但当我在谷歌的OAuth游乐场上尝试时,它会请求“知道你在谷歌上是谁”的权限以及查看你的电子邮件地址的权限。该程序不需要知道用户的姓名/信息等,它只需要电子邮件地址

我之所以尝试使用userinfo.email作用域,是因为我在gmail作用域中找不到获取用户电子邮件的方法,但如果有更好的方法。

您可以使用-method,为此,您需要以下作用域之一:

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']

非常感谢,这正是我想要的。还有一个问题,你知道有没有一种方法可以让我在Python中使用api来实现这一点,或者我需要使用httplib或其他方法来实现GET请求?@sj-f没问题!如果您不介意获取整个配置文件,而不仅仅是emailAddress,那么在中有一个方法。但是数据不多,所以应该很有效。再次感谢,我现在有了这些数据,但我遇到了另一个问题。现在我有了
address=gmail\u service.users().getProfile(userId='me')
我尝试将其解析为JSON,但控制台告诉我这是HTTPRequest类型的对象,不能将其用作JSON.load()的参数。api文档说它返回了一个具有这些属性的对象,但我不知道如何从请求中获取该对象。@sj-f编辑了答案。@sj-f没问题:)祝您的程序好运!