如何从谷歌api令牌中获取数据?

时间:2012-04-12 13:38:25

标签: c# google-api access-token

我想在我的网站上使用Google登录凭据。所以我使用的是Google API。我在网址中获得了Google API令牌。所以我想获得登录用户数据?我正在使用C#。 成功登录并在我的网站中重定向后,我获得了此URL: -

http://localhost:20885/WebServices/Welcome.aspx#state=/profile&access_token=ya29.AHES6ZRERYieYZIclNxQp3cPeXDnNWMP4IQuhDaj-TO_4wX2eqziRg&token_type=Bearer&expires_in=3600

请帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:0)

看看这个.Net库

http://www.dotnetopenauth.net/

这将为您完成所有繁重的OpenID / OAuth工作。您只需将其指向Google的OpenID网址即可。

请求特定的用户数据(如电子邮件)很简单,并在此处说明:

https://developers.google.com/accounts/docs/OpenID

答案 1 :(得分:0)

在.aspx页面中使用此javascript:

// First, parse the query string
var params = {}, queryString = location.hash.substring(1),
regex = /([^&=]+)=([^&]*)/g, m;
while (m = regex.exec(queryString)) {
  params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}

// And send the token over to the server
var req = new XMLHttpRequest();
// consider using POST so query isn't logged
req.open('GET', 'http://' + window.location.host + '/public/Google.aspx?' + queryString, true);

req.onreadystatechange = function (e) {
  if (req.readyState == 4) {
    if (req.status == 200) {
      window.location = params['state']
    }
    else if (req.status == 400) {
      alert('There was an error processing the token.')
    }
    else {
      alert('something else other than 200 was returned')
    }
  }
};
req.send(null);

用它来调用相同或另一个.aspx页面。