0

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

  1. 有谁知道他们是否改变了特殊 ID“我”的工作方式?

在文档中,它说这可以用作特殊 ID 来获取当前经过身份验证的用户信息,但是这会从我的代码中的 API 和 Google 自己的测试页面https://developers.google.com/+/中引发 404 api/最新/人/获取。尝试此操作时我已登录。

  1. 有谁知道如何获取用户 ID,因为我很乐意使用它而不是我,但据我所知,在用户进行身份验证后它不会返回(只是一个身份验证码)?

我还尝试使用在使用标准 .net Oauth 内容时返回的用户 ID,但它不是正确的 ID,我认为它是用于其他用途。

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

他们没有加号示例,因此我采用了 Tasks.ASP.NET.SimpleOAuth2 示例并将任务(工作正常)换成加号等效项。

我也尝试将其纳入我自己的项目中。

都没有奏效。我将用户转发到谷歌,在那里他们给了我很好的访问权限,然后当我返回时,就我所见,他们已成功通过身份验证,但是当我调用 service.People.Get("me") 时,它返回 404。

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

对于关闭此问题初始版本的版主,我已尝试将其作为一个尽可能直接的问题,因此请不要关闭它。这是一个合理的问题,我真的很想帮助他深入了解。

4

2 回答 2

0

看来你需要使用:

人员测试 = service.People.Get("me").Fetch();

并不是

req = service.People.Get("我"); 人员测试 = req.Fetch();

尽管它们似乎相同,但第一个有效,第二个无效。

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

于 2013-01-17T16:05:53.977 回答
0

鉴于最近的平台更新,这现在已经过时了。尽管 plus.me 范围仍然存在并且此代​​码可以工作,但您应该使用 plus.login 范围在 C# 中检索配置文件数据。要获得开始检索和呈现配置文件信息的好方法,请从此处提供的 Google+ C# 快速入门开始:


首先,'me' id 仍然有效并且没有改变。它的工作方式是:

  1. 您使用标准 OAUTH2 流程对用户进行身份验证
  2. 您使用该库执行具有特殊值“我”的 People.get

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

无论如何,一些 C# 代码怎么样。下面的例子展示了如何使用 plus 服务来获取当前认证的用户(假设你已经认证了某人)。与您的代码段不同的是,您需要为 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# 服务器端演示和库

于 2013-01-17T17:56:42.437 回答