当前位置: 首页 > 知识库问答 >
问题:

错误消息是(#12)版本v2不推荐使用bio字段。8及以上

赵宏达
2023-03-14

我使用了2.0.3版。发布spring社交facebook和facebook应用程序api v2。8.我打电话到Facebook登录,但返回了这条消息。“(#12)对于v2.8及更高版本,bio字段已被弃用”我如何修复此问题?

共有3个答案

薛枫
2023-03-14

这一点在spring社交facebook的新版本中得到了修正。请将以下内容添加到您的pom中。xml

<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-facebook</artifactId>
    <version>3.0.0.M1</version>
</dependency>

如果您错误地发现此版本不可用,请添加以下内容。

<repositories>
    <repository>
        <id>alfresco-public</id>
        <url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
    </repository>
</repositories>
高峻
2023-03-14

JHipster的变通方法。将以下代码段添加到您的SocialService类中,直到spring-socialfacebook修复。

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import javax.annotation.PostConstruct;

@PostConstruct
private void init() {
    try {
        String[] fieldsToMap = { "id", "about", "age_range", "birthday",
                "context", "cover", "currency", "devices", "education",
                "email", "favorite_athletes", "favorite_teams",
                "first_name", "gender", "hometown", "inspirational_people",
                "installed", "install_type", "is_verified", "languages",
                "last_name", "link", "locale", "location", "meeting_for",
                "middle_name", "name", "name_format", "political",
                "quotes", "payment_pricepoints", "relationship_status",
                "religion", "security_settings", "significant_other",
                "sports", "test_group", "timezone", "third_party_id",
                "updated_time", "verified", "viewer_can_send_gift",
                "website", "work" };

        Field field = Class.forName(
                "org.springframework.social.facebook.api.UserOperations")
                .getDeclaredField("PROFILE_FIELDS");
        field.setAccessible(true);

        Field modifiers = field.getClass().getDeclaredField("modifiers");
        modifiers.setAccessible(true);
        modifiers.setInt(field, field.getModifiers() & ~Modifier.FINAL);
        field.set(null, fieldsToMap);

    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

资料来源:https://github.com/jhipster/generator-jhipster/issues/2349-在fieldtomap数组中减去bio

弘浩瀚
2023-03-14

我得到了同样的错误,2.0.3。Spring-Social al-facebook的发布似乎与v2.8 Facebook API版本(昨天发布)不兼容。阅读facebook的变化日志v2.8(https://developers.facebook.com/docs/apps/changelog):

用户Bios-用户对象上的bio字段不再可用。如果为个人设置了bio字段,则该值现在将附加到“关于”字段。

我想我们必须等待Spring社交脸书图书馆的新版本。在2.0.3版本中(在User操作org.springframework.social.facebook.api.接口中),PROFILE_FIELDS常量中有“生物”字段,并且在v2.8脸书应用编程接口版本中不受支持。

更新:我在我的案例中找到了一个解决方法:

之前:

Connection<Facebook> connection = facebookConnectionFactory.createConnection(accessGrant);
Facebook facebook = connection.getApi();
User userProfile = facebook.userOperations().getUserProfile();//raises the exception caused by the "bio" field.

之后

java prettyprint-override">Connection<Facebook> connection = facebookConnectionFactory.createConnection(accessGrant);
Facebook facebook = connection.getApi();
String [] fields = { "id", "email",  "first_name", "last_name" };
User userProfile = facebook.fetchObject("me", User.class, fields);

这里是您可以使用的字段的完整列表:

{ "id", "about", "age_range", "birthday", "context", "cover", "currency", "devices", "education", "email", "favorite_athletes", "favorite_teams", "first_name", "gender", "hometown", "inspirational_people", "installed", "install_type", "is_verified", "languages", "last_name", "link", "locale", "location", "meeting_for", "middle_name", "name", "name_format", "political", "quotes", "payment_pricepoints", "relationship_status", "religion", "security_settings", "significant_other", "sports", "test_group", "timezone", "third_party_id", "updated_time", "verified", "video_upload_limits", "viewer_can_send_gift", "website", "work"}
 类似资料:
  • 在Android Studio中建议将Android Gradle插件从7.0.0升级到7.0.2后,升级助手通知无法在构建文件中找到AGP版本,因此我无法进行升级。 我该怎么办? 谢谢 编译代码。格拉德尔(项目) 编译代码。格雷德尔(模块) 代码在build.gradle.kts

  • 我不知道我做错了什么,但我收到了这个错误:- 已弃用:mysql_connect():mysql扩展已弃用,将来将被删除:请在第7行的C:\wamp\www\includes\config.php中使用mysqli或PDO 我怎样才能解决这个问题? 现在我的登录页面出现了问题

  • 问题内容: 以下段错误消息的正确解释是什么? 问题答案: 这是一个段错误,原因是跟随空指针试图查找要运行的代码(即在指令提取期间)。 如果这是一个程序,而不是共享库 运行(并重复给定的其他指令指针值)以查看错误发生的位置。更好的方法是,获得一个带有调试工具的内部版本,并在诸如gdb之类的调试器下重现该问题。 由于是共享库 不幸的是,您被水淹了。事后无法知道动态链接程序将库放置在内存中的位置。重现该

  • 我在google上搜索onactivityresult()是不推荐的。但我的问题没有解决。下面是片段的代码

  • 错误WorkerSourceTask{id=ptl_connector-0}任务引发了一个未捕获且不可恢复的异常[org.apache.kafka.connect.runtime.workertask]org.apache.kafka.connect.errors.connectException:在org.apache.kafka.connect.runtime.retryWith容忍操作程序中

  • 我不知道这是否是问这样一个问题的最佳位置,我在这里看到一些< code>JavaFX的人,通过用javafx-2替换JavaFX并采用新的javafx-8来重新标记一些问题。是弃用了还是怎样? 编辑:不要用javafx标签标记你的问题,除非它与相关。 从标签维基: “javafx”标签主要专用于JavaFX 1.3及更早版本