获取(#100)未知字段:Spring Social Facebook中的用户名

时间:2014-07-28 14:19:18

标签: spring spring-social spring-social-facebook

我正在尝试使用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搜索并了解用户名字段已不再需要,但在我的情况下仍然不清楚如何解决此问题。

1 个答案:

答案 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不兼容。