【问题标题】:Retrieve user detail from google - It should be simple right?从谷歌检索用户详细信息 - 应该很简单吧?
【发布时间】:2014-06-06 09:34:26
【问题描述】:

我已经使用浏览器对用户进行了身份验证。现在我想将此令牌发送到服务器,服务器必须获取用户详细信息,如名字、姓氏和电子邮件地址。

我最近在 Facebook 上做了这个,它很简单,因为它有一个易于使用的库。

我似乎不知道如何使用 Google 库。我正在使用这个库https://code.google.com/p/google-api-dotnet-client/,它与谷歌 API 交互。

互联网上的任何提示或示例可以告诉我如何做到这一点?我只知道这很简单,而且我可能会以完全错误的方式去做这件事..

我需要 Stack 的智慧!!!喂我!

【问题讨论】:

  • 欢迎来到 Stack Overflow!这看起来像是一个好问题的开始,但是如果您包含迄今为止尝试过的代码,您可能会得到更好的结果。然后人们可以看到你做错了什么并发布更正,而不必给你一个完整的例子。此外,请求站外资源是题外话,因为它往往会吸引垃圾邮件。
  • 看看这个帖子 - stackoverflow.com/questions/23759400/…,我想你会发现它很有用。

标签: .net google-api google-api-dotnet-client


【解决方案1】:
var tokeninfoUri = "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=" + accessToken;

var hc = new HttpClient();

var webResponse = hc.GetAsync(tokeninfoUri).Result;

这会返回与此类似的 JSON

public string Expires_In { get; set; }
public string Audience { get; set; }

然后我调用这个 API 来获取用户信息

const string userInfoUrl = "https://www.googleapis.com/oauth2/v1/userinfo";
var hc = new HttpClient();
hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authToken);
var webResponse = hc.GetAsync(userInfoUrl).Result;

所以我不需要任何图书馆来帮助我。但是,如果有一个图书馆可以为我完成这一切,那就太好了。我花了几个小时才弄明白。

【讨论】:

    【解决方案2】:

    .NET 的 Google APIs 客户端库应该可以为您完成这项工作。 所有的 API 都可以在这里找到:https://developers.google.com/api-client-library/dotnet/apis/

    您将需要使用以下 API:https://developers.google.com/api-client-library/dotnet/apis/oauth2/v2,它在 NuGet 存储库中可用:http://www.nuget.org/packages/Google.Apis.Oauth2.v2/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      相关资源
      最近更新 更多