0

我正在尝试使用链接实现 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)

尝试使用谷歌搜索并知道不再需要用户名字段,但在我的情况下仍然不清楚如何解决这个问题。

4

1 回答 1

7

4 月 30 日,Facebook 发布了他们的 API 2.0 版,删除了“用户名”字段。Spring Social Facebook 1.0.3(这是您正在使用的版本)针对 Facebook 的 API 版本 1.0。因此,当它尝试获取“用户名”字段时,您会收到该错误。

即使是 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 不兼容。

于 2014-07-28T14:31:16.100 回答