Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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
C# 如何获得用户';使用google Oauth api的电子邮件地址_C#_Winforms_Oauth_Google Api - Fatal编程技术网

C# 如何获得用户';使用google Oauth api的电子邮件地址

C# 如何获得用户';使用google Oauth api的电子邮件地址,c#,winforms,oauth,google-api,C#,Winforms,Oauth,Google Api,我正在使用我自己的谷歌个人帐户使用谷歌的OAuth 2.0游乐场,但我似乎无法使用游乐场恢复我的Gmail地址。我正在使用api url。但没有收到电子邮件地址。 我得到了关于用户的各种信息,如姓氏、名字、性别、图片等。我曾经提到过,但它不起作用。我正在使用下面的代码(c#-windows窗体)(获取电子邮件地址和用户信息) string userinfoRequestURI=”https://www.googleapis.com/oauth2/v3/userinfo HttpWebReques

我正在使用我自己的谷歌个人帐户使用谷歌的OAuth 2.0游乐场,但我似乎无法使用游乐场恢复我的Gmail地址。我正在使用api url。但没有收到电子邮件地址。 我得到了关于用户的各种信息,如姓氏、名字、性别、图片等。我曾经提到过,但它不起作用。我正在使用下面的代码(c#-windows窗体)(获取电子邮件地址和用户信息)

string userinfoRequestURI=”https://www.googleapis.com/oauth2/v3/userinfo
HttpWebRequest userinfoRequest=(HttpWebRequest)WebRequest.Create(userinfoRequestURI);
userinfoRequest.Method=“GET”;
userinfoRequest.Headers.Add(string.Format(“授权:承载{0}”,访问令牌));
userinfoRequest.ContentType=“应用程序/x-www-form-urlencoded”;
userinfoRequest.Accept=“Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”;
WebResponse userinfoResponse=await userinfoRequest.GetResponseAsync();
//用户信息响应。
使用(StreamReader userinfoResponseReader=newstreamreader(userinfoResponse.GetResponseStream())
{
//读取响应体
字符串userinfoResponseText=wait userinfoResponseReader.ReadToEndAsync();
输出(userinfoResponseText);
}

当您在oauth游乐场上授权您的请求时,请确保您发送了电子邮件

如果您确实发送了电子邮件范围,那么我建议您使用People api而不是userinfo端点,但请记住添加概要文件范围和电子邮件范围

userinfo端点不保证每次都返回声明。最好使用People api


提示:考虑查看谷歌API .NET客户端库。

< P>当您在OAuthPo操场上授权您的请求时,请确保您发送电子邮件。

如果您确实发送了电子邮件范围,那么我建议您使用People api而不是userinfo端点,但请记住添加概要文件范围和电子邮件范围

userinfo端点不保证每次都返回声明。最好使用People api


提示:考虑查看谷歌API .NET客户端库。

谢谢您的回复。您可以建议如何添加配置文件范围,并将上面代码集的电子邮件范围添加到请求用户授权的代码中,然后将授权授予Access令牌。因此,在上面的代码中没有添加它。当您在oauth游乐场上请求访问时,将添加ds。我希望您仅使用oauth游乐场进行测试。您是对的,我使用的代码字符串tokenRequestURI=“”;string tokenRequestBody=string.Format(“code={0}&redirect_-uri={1}&client_-id={2}&code_-verifier={3}&client_-secret={4}&scope=&grant\u type=authorization\u code”,code,System.Uri.EscapeDataString(redirectURI),clientID,code\u-verifier,clientSecret);[如何使用上述代码指定电子邮件作用域?]scope=电子邮件配置文件感谢您的回复。您能建议如何添加配置文件范围,并且将具有上述代码范围的电子邮件范围添加到请求用户授权的代码中,然后将授权授予access_令牌。因此,不,这不是添加在上述代码中的内容。当您请求在o上访问时,需要添加该范围auth playway。我希望您只使用Oauth playway进行测试。您是对的,我使用的代码字符串tokenRequestURI=“”;string tokenRequestBody=string.Format(“code={0}&redirect_uri={1}&client_id={2}&code_-verifier={3}&client_-secret={4}&scope=&grant_-type=authorization_-code“,代码,System.Uri.EscapeDataString(重定向Uri),clientID,代码验证程序,clientSecret);[如何使用上述代码指定电子邮件范围?]范围=电子邮件配置文件