我正在尝试使用this链接实现FB登录并检索朋友列表。
现在在依赖项中给出我在pom.xml中使用了一个
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-core</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-facebook</artifactId>
<version>1.0.3.RELEASE</version>
</dependency>
现在我通过提供登录信息并尝试使用以下代码获取friendList来获得正确的accessCode:
Facebook fb = new FacebookTemplate(accessToken);
List<FacebookProfile> friends = fb.friendOperations().getFriendProfiles();
在上面的代码中我得到以下异常:
org.springframework.social.UncategorizedApiException: (#100) Unknown fields: username.
org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleUncategorizedError(FacebookErrorHandler.java:158)
尝试使用Google搜索并了解用户名字段已不再需要,但在我的情况下仍然不清楚如何解决此问题。
答案 0 :(得分:7)
4月30日,Facebook发布了他们的API 2.0版,删除了&#34;用户名&#34;领域。 Spring Social Facebook 1.0.3(这是你正在使用的版本)的目标是Facebook的1.0版API。因此,当它试图获取&#34;用户名&#34;字段,你得到那个错误。
即使是Spring Social Facebook 1.1.1(Spring Social Facebook的最新GA版本)也会给你这个错误,因为它是在Facebook发布其API 2.0版之前发布的。
根据Facebook的规则,在 2014年4月30日之后注册的任何应用程序都需要定位API的2.0版本。 (4月30日之前注册的应用程序可以选择他们想要使用的版本。)这意味着在4/30之后注册的任何应用程序可能会出现错误,例如您在使用Spring Social Facebook 1.0.x或1.1.x时获得的错误。
然而,有一个好消息:Spring Social Facebook 2.0.0.M1完全更新为目标Facebook的v2.0 API。我鼓励你试一试,看看它能否解决你的问题。请注意,您还需要使用Spring Social Core 1.1.0,因为Spring Social Facebook 2.0.0.M1与Spring Social Core 1.0.2.RELEASE不兼容。