Google+ .Net API - 获取身份验证并检索个人资料

时间:2013-01-17 15:42:05

标签: google-plus google-api-client

我正在尝试通过.NET API获取google +的用户个人资料信息,但遇到了麻烦。

  1. 是否有人知道他们是否更改了特殊ID“我”的工作方式?
  2. 在文档中,它说这可以作为特殊ID来获取当前经过身份验证的用户信息,但是这会从我的代码中的API和Google自己的测试页https://developers.google.com/+/api/latest/people/get中引发404。我在尝试这个时登录了。

    1. 有没有人知道如何获取用户ID,因为我很乐意使用它而不是我,但是在用户进行身份验证后我就不会返回它(只是一个authcode)?
    2. 我还尝试使用标准.net Oauth时返回的用户ID,但它不是正确的ID,我认为它是用于别的东西。

      至于我进入这个阶段的方法,我首先在这里下载了示例文件:http://code.google.com/p/google-api-dotnet-client/wiki/GettingStarted

      他们没有加号示例,所以我采用了Tasks.ASP.NET.SimpleOAuth2示例并交换了等效的任务(工作正常)。

      我也试过把它放到我自己的项目中。

      都没有奏效。我将用户转发给谷歌,他们给我提供了良好的访问权限,然后当我返回时,他们已经成功通过认证,但是当我打电话给service.People.Get(“我”)它返回404。

      如果有人可以帮助解决上述问题(使用我,或获取用户ID),我将不胜感激。

      对于关闭此问题初始版本的主持人,我试图尽可能直接提出这个问题,所以请不要关闭它。这是一个合理的问题,我真的很想帮助他走到最低点。

2 个答案:

答案 0 :(得分:0)

似乎你需要使用:

Person test = service.People.Get(“me”)。Fetch();

而不是

req = service.People.Get(“我”); Person test = req.Fetch();

即使它们看起来完全相同,但第二部作品却没有。

仍然不确定为什么谷歌自己的页面不起作用。现在,了解如何将内容添加到范围内,如生日。

答案 1 :(得分:0)

鉴于最近的平台更新,现在已经过时了。虽然plus.me范围仍然存在且此代码可用,但您应该使用plus.login范围来检索C#中的配置文件数据。有关开始检索和呈现个人资料信息的好方法,请从此处提供的Google+ C#快速入门开始:


首先,“我”ID仍然有效并且没有变化。它的工作方式是:

  1. 使用标准OAUTH2流程验证用户
  2. 您使用该库执行具有特殊值'me'
  3. 的People.get

    404错误代码有点麻烦,这意味着客户端没有找到端点。要对此进行调试,您可能希望使用像fiddler这样的数据包嗅探器来查看它所查询的实际URL。

    无论如何,一些C#代码怎么样。以下示例显示如何使用加号服务来获取当前经过身份验证的用户(假设您已对其进行身份验证)。与您的代码段不同的是,您需要为API调用形成get请求,然后在get请求上运行fetch。我已经包含了以下示例,以获取“我”,以下代码可以使用:

    var auth = CreateAuthenticator();
    plusService = new PlusService(auth);
    if (plusService != null)
    {
      PeopleResource.GetRequest prgr = plusService.People.Get("me");
      Person me = prgr.Fetch();                                           
    }  
    

    服务器的所有配置以及让客户端正常工作非常困难,并且粘贴所有代码不会仅仅为您提供样本。

    所以......我编写了一个示例应用程序,演示了如何执行此操作,还包含一个包装器,可以更轻松地使用C#中的Google+ API进行开发。抓住这里: Google+ C# Server-Side demo and library