Google plus 谷歌&x2B。Net API-获取身份验证和检索配置文件

Google plus 谷歌&x2B。Net API-获取身份验证和检索配置文件,google-plus,google-api-client,Google Plus,Google Api Client,我试图通过.NETAPI获取google+的用户档案信息,但遇到了麻烦 有人知道他们是否已经改变了特殊ID“我”的工作方式吗 在文档中,它说这可以作为一个特殊的ID来获取当前经过身份验证的用户信息,但是这会从我的代码中的API和Google自己的测试页面中抛出一个404。我尝试此操作时已登录 是否有人知道如何获取用户ID,因为我很乐意使用该ID而不是我,但在我所能看到的用户身份验证后它不会返回(只是一个身份验证码) 我还尝试使用在使用标准.NETOAuth内容时返回的用户ID,但它不是正确的ID

我试图通过.NETAPI获取google+的用户档案信息,但遇到了麻烦

  • 有人知道他们是否已经改变了特殊ID“我”的工作方式吗 在文档中,它说这可以作为一个特殊的ID来获取当前经过身份验证的用户信息,但是这会从我的代码中的API和Google自己的测试页面中抛出一个404。我尝试此操作时已登录

  • 是否有人知道如何获取用户ID,因为我很乐意使用该ID而不是我,但在我所能看到的用户身份验证后它不会返回(只是一个身份验证码)
  • 我还尝试使用在使用标准.NETOAuth内容时返回的用户ID,但它不是正确的ID,我假设它是用于其他内容的

    至于我进入这一阶段的方法,我首先在这里下载了示例文件:

    他们没有一个plus示例,所以我以Tasks.ASP.NET.SimpleOAuth2为例,将任务(工作正常)替换为plus等效项

    我还试着把这个应用到我自己的项目中

    两者都不起作用。我让用户转发到谷歌,他们在那里给我访问权限,然后当我返回时,就我所能看到的而言,他们已成功通过身份验证,但当我调用service.People.get(“我”)时,它返回404

    如果有人能帮我解决以上问题(使用我,或者签下用户ID),我将不胜感激

    对于关闭此问题初始版本的主持人,我已尝试使此问题尽可能直接,因此请不要关闭它。这是一个合理的问题,我真的很想帮助你弄清真相。

    似乎你需要使用:

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

    而不是

    req=服务。人员。获取(“我”); Person test=req.Fetch()

    尽管它们看起来一模一样,但第一个有效,第二个无效


    但仍不确定谷歌自己的页面为什么不起作用。现在了解如何向范围中添加诸如生日之类的内容。

    鉴于最近的平台更新,此内容现在已过时。虽然plus.me作用域仍然存在,并且此代码可以工作,但是您应该使用plus.login作用域来检索C#中的概要文件数据。要获得检索和呈现配置文件信息的好方法,请从Google+C快速入门:


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

  • 您可以使用标准OAUTH2流对用户进行身份验证
  • 您使用库来执行一个具有特殊值“me”的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进行开发更加容易。在这里抓住它:

    感谢您的回复,老实说,API的文档记录很差,行为也不太一致,例如,我的问题是:req=service.People.Get(“我”);Person test=req.Fetch();我使用的与Person test=service.People.Get(“我”).Fetch()不同;我现在正在使用并且有效。你的帖子是在2013年1月18日发布的,这意味着你正在使用1.2.4722版本,或者至少你“应该”使用它。我从去年12月开始使用这个库,直到我切换到最新版本。因此,使用旧版本(4722)并尝试:(1)获取
    GetRequest
    ;(2) 然后执行
    ServiceRequest。Fetch
    正在工作。这和你现在做的完全一样。但是,如果有一个新版本,那么使用旧版本是没有意义的(至少对于GoogleAPI是这样)?谢谢你+vonV。为了通知我,将帖子更新为参考更新。