根据此documentation,接收OAuth访问令牌的过程非常简单 . 我希望看到已准备好接受OAuth 2.0访问令牌的所有可用API endpoints 的列表 . 但是对于我目前的需求,我想以某种方式接收使用OAuth 2.0访问令牌的用户的 username
和 email
.
我成功地可以接收来自此 endpoints 的数据:
https://www.google.com/m8/feeds/contacts/default/full
但无法从此 endpoints 接收数据:
https://www.googleapis.com/userinfo/email
我尝试了传递单一访问令牌的header-base和querystring-base方法 . 这是我试过的 Headers :
Authorization: OAuth My_ACCESS_TOKEN
我甚至尝试过OAuth 1.0版本的Authorization标头,但是......在OAuth 2.0中,我们没有秘密访问令牌 . Google在其OAuth 2.0实施中使用了承载令牌,因此无需其他凭据 .
是否有人使用Google OAuth 2.0成功收到用户名和电子邮件?
2 回答
试试这个:
curl -k https://www.googleapis.com/userinfo/email -H "Authorization: OAuth 1/g5_039aCIAfEBuL7OCyB31n1URYU5tUIDudiWKuxN1o"
输出:email=name@gmail.com&isVerified=tru
我找到了我正在寻找的答案 . 我不得不将PHP转换为MVC,但非常简单:
http://codecri.me/case/430/get-a-users-google-email-address-via-oauth2-in-php/
我的MVC
Login
沙箱代码如下所示 . (使用JSON.Net http://json.codeplex.com/)返回的
code
证明了来自用户的Authorization
令牌,然后需要将其转换为Authentication
(accessToken)来访问资源 . 我的MVCOAuthVerify
然后看起来像:为了完成所有工作的方式,我已经包含了我创建的HttpClient实用程序,以防任何人需要它 .
同样,这是测试代码只是为了让它起作用,我不建议在 生产环境 环境中使用它 .