我正在尝试通过.NET API获取google +的用户个人资料信息,但遇到了麻烦。
在文档中,它说这可以作为特殊ID来获取当前经过身份验证的用户信息,但是这会从我的代码中的API和Google自己的测试页https://developers.google.com/+/api/latest/people/get中引发404。我在尝试这个时登录了。
我还尝试使用标准.net Oauth时返回的用户ID,但它不是正确的ID,我认为它是用于别的东西。
至于我进入这个阶段的方法,我首先在这里下载了示例文件:http://code.google.com/p/google-api-dotnet-client/wiki/GettingStarted
他们没有加号示例,所以我采用了Tasks.ASP.NET.SimpleOAuth2示例并交换了等效的任务(工作正常)。
我也试过把它放到我自己的项目中。
都没有奏效。我将用户转发给谷歌,他们给我提供了良好的访问权限,然后当我返回时,他们已经成功通过认证,但是当我打电话给service.People.Get(“我”)它返回404。
如果有人可以帮助解决上述问题(使用我,或获取用户ID),我将不胜感激。
对于关闭此问题初始版本的主持人,我试图尽可能直接提出这个问题,所以请不要关闭它。这是一个合理的问题,我真的很想帮助他走到最低点。
答案 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仍然有效并且没有变化。它的工作方式是:
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