谷歌+ API:获取个人资料的当前位置

45

我目前正在构建一个测试,试图获得Google +用户的位置信息。我正在对自己进行测试,并将我的位置设置为公共。

我最初计划使用Google Latitude,但由于Google将在几天后废弃此API,我的唯一选择是使用Google+ API。

参数currentLocation 几个月前被添加

因此,我尝试获取它。但无法做到这一点。

我已经使用PHP API和JS API进行了自己的服务器测试,使用了Oauth2.0,但是这个可恶的参数从未返回。我可以获得任何其他参数,但绝对不能获得该参数。

然后我在Google+资源管理器中进行了测试,但是同样的情况,没有任何结果

是否有人遇到类似问题?

我有一些想法可能会出现这种情况:

  1. Oauth2.0是否不允许我访问此信息(我尝试过所有可能的数据范围)
  2. 这个功能只是存在缺陷吗?
  3. 它是否仅限于经过验证的用户?
  4. 或者可能根本不可能?

谢谢!


1
目前,这个功能还没有生效,如果我能够获取到currentLocation的值,我会在答案中告诉你。当它生效时,你将能够从用户的个人资料中获取currentLocation,如果它是公开共享的。 - class
有人对此有进一步的了解吗?我也看到它似乎对我不起作用。 - Michael Giovanni Pumo
1
也在等待currentLocation属性被填充。我尝试了这个链接:https://developers.google.com/+/api/latest/people/get - feder
3个回答

1

访问位置数据仅限于在生成OAuth令牌时授权您访问其位置数据的用户。

您必须在范围参数中明确请求访问位置数据。


所链接的文档没有关于特别请求访问位置范围的详细信息。 - Rob
1
我已经探索了上述的“解决方案”,发现它几乎没有用。唯一可能提供位置信息的是“moment”api,但谷歌已经确认它已经损坏,他们说会修复它,但当然没有预期的日期。 - marty331
@atrioom,不幸的是这并不是真正的解决方案:(正如marty331所说,Moment API已经失效了。我最终取消了我正在进行的项目,因为目前没有办法完成它。仍在寻找长期的解决方案或修复方法。 - littlebridge
真的很遗憾,这个有趣的API到现在还是坏的。而且没有任何参考或解释。此外,其他Google+ API也是坏的,例如生日。 - mattd
1
Moment API现已弃用。 - 0xcaff

0

这是一个旧问题,但仍然有效。即使“currentLocation”字段被列为有效响应People object field,也没有办法访问该字段的数据。

已在G+ repository中报告为问题,但迄今为止还没有答案。

如果您仍在尝试获取用户的当前位置,请尝试以下代码片段,不确定是否为最佳选项,但它可以工作:):

注意:“r”保存了client.request()响应数据(API调用)

r.placesLived.forEach(function(l) {
   if (l.primary) 
    console.log(l.value);
});

希望这能有所帮助。 祝好。

0
我认为r.placesLived只会提供他的位置,而不是用户或确切机器的位置。需要记住的是,您需要有地址。但是,它需要查找另一个令牌来验证用户的确切位置。深入研究可能只需要更多的跟踪器,而不仅仅是位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接