微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Spring社交Facebook上没有填充位置

我正试图在 Spring Social Facebook获得用户位置:
Facebook fb = ((Facebook) connection.getApi());
Page pg = fb.pageOperations().getPage(fb.userOperations().getUserProfile().getLocation().getId());

问题是pg.getLocation()返回null.

我也尝试过

fb.fetchObject(fb.userOperations().getUserProfile().getLocation().getId(),org.springframework.social.facebook.api.Location.class)

但它只填充名称,而不是国家或其他领域.

尝试使用Graph API Explorer /v2.6/112286918797929?fields=id,name,location按预期方式返回:

{
  "id": "112286918797929","name": "Sacele","location": {
    "city": "Sacele","country": "Romania","latitude": 45.6167,"longitude": 25.6833
  }
}

这是Spring Social Facebook的问题吗?

我正在使用Spring Social 1.1.4和Spring Social Facebook 2.0.3.

我也尝试了Spring Social for Facebook – get user location,但遗憾的是并非所有的地方都遵循名称惯例City,Country,其中一些仅包括名称中的城市,而不是国家.另外你怎么能得到地理坐标?

解决方法

我终于明白了.首先,它不适用于PageOperations,但它适用于GraphApi.

代码

UserProfile userProfile = fb.userOperations().getUserProfile();
Page pg = fb.fetchObject(userProfile.getLocation().getId(),Page.class,"location");

诀窍是指定第三个参数,它表示字段(您可以将多个字段指定为字符串).现在页面已填充,您可以像pg.getLocation().getCountry()一样获得国家/地区.

原文地址:https://www.jb51.cc/java/130047.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐