当用户使用他们的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.readscopestring URL=string.Format("https://www.googleapis.com/plus/v1/people/me?access_token={0}‌​‌​", googleresponse.access_token);创建HttpWebRequest。我可以得到所有用户的数据,也email

我在这里写这个是因为可能其他用户可以使用。

当用户使用他们的Google+帐户登录时,我可以获得所有数据,但只能发送电子邮件.Email =null, verifi

还需要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月删除。