当用户使用他们的Google+帐户登录时,我可以获得所有数据,但只能发送电子邮件.Email =null, verifi
本文关键字:数据 null verifi Email 电子邮件 他们的 Google+ 用户 我可以 登录 | 更新日期: 2023-09-27 17:54:58
string URL=string.Format("https://www.googleapis.com/oauth2/v1/userinfo?access_token={0}", googleresponse.access_token);
private A GetGoogleUser<A>(string urluser) where A:class
{
A user = null;
if (googleresponse != null && !string.IsNullOrEmpty(googleresponse.access_token))
{
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(urluser);
HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse();
if (((HttpWebResponse)webresponse).StatusCode == HttpStatusCode.OK)
{
using (Stream recieveuser = webresponse.GetResponseStream())
{
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
using (StreamReader readstream = new StreamReader(recieveuser, encode))
{
user = new JavaScriptSerializer().Deserialize<A>(readstream.ReadToEnd());
webresponse.Close();
readstream.Close();
}
}
}
}
return user;
}
这是代码,我可以得到用户数据时,用户sign in
与他们的Google+
帐户到我的网站。一切都很好。我可以得到用户数据(id,name,gender,picture,link,family_name,locale)
,但只有我不能发邮件。
email=null
verified_email=false
但是昨天却不是这样。我也可以得到email
。
有谁知道我错在哪里吗?
@@@。..我只使用https://www.googleapis.com/auth/plus.profile.emails.read
为scope
string URL=string.Format("https://www.googleapis.com/plus/v1/people/me?access_token={0}", googleresponse.access_token);
创建HttpWebRequest
。我可以得到所有用户的数据,也email
。
我在这里写这个是因为可能其他用户可以使用。
还需要https://www.googleapis.com/auth/plus.profile.emails.read范围。详见https://developers.google.com/+/web/people/#retrieve_an_authenticated_users_email_address和https://developers.google.com/+/api/oauth#email-scopes
需要说明的是,除了上面提到的plus.profile.email作用域之外,还需要https://www.googleapis.com/auth/plus.login作用域。
您仍将使用https://developers.google.com/+/api/latest/people/get
中描述的plus.people.get
端点您不应该再使用userinfo
端点-这些已被弃用,并将在9月删除。