Java spring社交Facebook-单个Facebook实例

Java spring社交Facebook-单个Facebook实例,java,spring,facebook,spring-mvc,spring-social,Java,Spring,Facebook,Spring Mvc,Spring Social,我刚刚使用最新的SpringSocial和SpringSocialFacebook(和SpringBoot)创建了一个项目 我正在尝试实现一个Facebook注册,它运行良好,只是每次都会为第一个连接的用户返回相同的连接/配置文件 我的Facebook个人资料控制器是: @RestController @RequestMapping(path = "/api/unsecure/facebook") public class FacebookProfileController implem

我刚刚使用最新的SpringSocial和SpringSocialFacebook(和SpringBoot)创建了一个项目

我正在尝试实现一个Facebook注册,它运行良好,只是每次都会为第一个连接的用户返回相同的连接/配置文件

我的Facebook个人资料控制器是:

    @RestController
@RequestMapping(path = "/api/unsecure/facebook")
public class FacebookProfileController implements Serializable {
    private static final long serialVersionUID = 1895700328147293496L;

    @Autowired
    private Facebook facebook;

    @RequestMapping(path = "/profile", method = RequestMethod.GET)
    public Result<FBUserVO> getUserFBProfile() {
        if (!facebook.isAuthorized()) {
            return ResultFactory.getFailResult("Facebook signup failed!");
        }
        FBUserVO user = FBUserToFBUserVO.INSTANCE.apply(facebook.userOperations().getUserProfile());
        PagedList<Reference> friends = facebook.friendOperations().getFriends();
        if (!friends.isEmpty()) {
            user.setFriendsMessage("You have " + friends.size() + " friends playing. Join Now!");
        }
        return ResultFactory.getSuccessResult(user);
    }
}
@RestController
@请求映射(path=“/api/unsecure/facebook”)
公共类FacebookProfileController实现可序列化{
私有静态最终长serialVersionUID=1895700328147293496L;
@自动连线
私人脸书;
@RequestMapping(path=“/profile”,method=RequestMethod.GET)
公共结果getUserFBProfile(){
如果(!facebook.isAuthorized()){
返回ResultFactory.getFailResult(“Facebook注册失败!”);
}
FBUserVO user=FBUserToFBUserVO.INSTANCE.apply(facebook.userOperations().getUserProfile());
PagedList friends=facebook.friendOperations().getFriends();
如果(!friends.isEmpty()){
user.setFriendsMessage(“您有“+friends.size()+”正在玩的朋友。立即加入!”);
}
返回ResultFactory.getSuccessResult(用户);
}
}
这是第一次有效。。。之后,它每次都会返回相同的配置文件信息,即使在调试FacebookTemplate类时,这是使用新用户的新/有效访问令牌创建的,但出于某些原因,URL可能是使用旧令牌创建的。我尝试调试URL,但它们似乎没有发送任何访问令牌


这里有什么我做错的吗?我可以用另一种方式连接当前连接吗

您必须使用ConnectionRepository类(该类允许删除导致您出现问题的第一个登录用户与Facebook提供商的现有连接)

使用这样的构造函数并消除Facebook自动连接:

private ConnectionRepository connectionRepository;
    @Inject
    public FacebookProfileController(ConnectionRepository connectionRepository) {
        this.connectionRepository = connectionRepository;
    }
通过connectionRepository实例,您可以通过以下操作获取当前登录用户的Facebook对象:

connectionRepository.findPrimaryConnection(Facebook.class).getApi()
注意:要检查用户是否未通过身份验证,您需要使用:

当您完成提取当前登录用户的数据时,您必须使用以下说明删除通过构造函数创建的持久连接:

connectionRepository.removeConnections("facebook");

希望这有帮助

您必须使用ConnectionRepository类(该类允许删除导致您出现问题的第一个登录用户与Facebook提供商的现有连接)

使用这样的构造函数并消除Facebook自动连接:

private ConnectionRepository connectionRepository;
    @Inject
    public FacebookProfileController(ConnectionRepository connectionRepository) {
        this.connectionRepository = connectionRepository;
    }
通过connectionRepository实例,您可以通过以下操作获取当前登录用户的Facebook对象:

connectionRepository.findPrimaryConnection(Facebook.class).getApi()
注意:要检查用户是否未通过身份验证,您需要使用:

当您完成提取当前登录用户的数据时,您必须使用以下说明删除通过构造函数创建的持久连接:

connectionRepository.removeConnections("facebook");

希望这有帮助

您是否第二次调试访问令牌以确保已创建新会话?您是否第二次调试访问令牌以确保已创建新会话?