无法从 C# 中的 google api 令牌验证器获取数据
Posted
技术标签:
【中文标题】无法从 C# 中的 google api 令牌验证器获取数据【英文标题】:Not able to fecth the data from google api token verifier in C# 【发布时间】:2017-03-02 00:22:24 【问题描述】:我正在使用令牌验证器 google api
https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123
它给了我浏览器中的用户电子邮件 ID,例如
"iss": "https://accounts.google.com",
"sub": "110169484474386276334",
"azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
"aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
"iat": "1433978353",
"exp": "1433981953",
"email" OAuth scopes to the application.
"email": "testuser@gmail.com",
"email_verified": "true",
"name" : "Test User",
"picture": "https://lh4.googleusercontent.com/-kYgzyAWpZzJ/ABCDEFGHI/AAAJKLMNOP/tIXL9Ir44LE/s99-c/photo.jpg",
"given_name": "Test",
"family_name": "User",
"locale": "en"
现在我想从我的后端代码调用这个 URL 并检索邮件 ID 以进行身份验证
我试过这样的
function(string access_token)
var url = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=" + access_token;
WebRequest request = WebRequest.Create(url);
request.Method = "GET";
using (WebResponse response = request.GetResponse())
using (Stream stream = response.GetResponseStream())
XmlTextReader reader = new XmlTextReader(stream);
但无法从该 json 中获取数据
还有其他选择吗?
我只需要使用客户端将发送到服务器的 access_token 或 idToken 获取用户的电子邮件 ID。
【问题讨论】:
您为什么使用 XmlTextReader 并希望能够读取 Json? 【参考方案1】:解决了
var json = new WebClient().DownloadString(url);
使用 WebClient 从浏览器获取数据
反序列化后我得到了数据。
【讨论】:
以上是关于无法从 C# 中的 google api 令牌验证器获取数据的主要内容,如果未能解决你的问题,请参考以下文章
无法获取 Google Analytics API 的 oAuth2 访问令牌
如何从 Google YouTube Data API OAuth 2 iOS 获取刷新令牌