Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用scope属性进行Facebook身份验证_Java_Facebook_Spring Mvc_Spring Social - Fatal编程技术网

Java 使用scope属性进行Facebook身份验证

Java 使用scope属性进行Facebook身份验证,java,facebook,spring-mvc,spring-social,Java,Facebook,Spring Mvc,Spring Social,我正在编写一个Facebook应用程序,需要访问用户电子邮件并发布到timeline。我发现了以下两个链接: 告诉我如何使用的范围和defaultScope属性: org.springframework.social.facebook.security.FacebookAuthenticationService 但这两种解决方案都不起作用 该应用程序使用spring社交示例,如起点: @Configuration @EnableSocial public class FacebookC

我正在编写一个Facebook应用程序,需要访问用户电子邮件并发布到timeline。我发现了以下两个链接:

告诉我如何使用的范围和defaultScope属性:

org.springframework.social.facebook.security.FacebookAuthenticationService
但这两种解决方案都不起作用

该应用程序使用spring社交示例,如起点:

@Configuration
@EnableSocial
public class FacebookConfig implements SocialConfigurer
{
    @Inject
    private DataSource dataSource;

    @Override
    public void addConnectionFactories(ConnectionFactoryConfigurer cfConfig, Environment env)
    {
        final FacebookConnectionFactory fbcf = new FacebookConnectionFactory(env.getProperty("facebook.appKey"),
                env.getProperty("facebook.appSecret"));
        fbcf.setScope(env.getProperty("facebook.scope"));
        cfConfig.addConnectionFactory(fbcf);
    }

    /**
     * Singleton data access object providing access to connections across all
     * users.
     */
    @Override
    public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator)
    {
        JdbcUsersConnectionRepository repository = new JdbcUsersConnectionRepository(dataSource,
                connectionFactoryLocator, Encryptors.noOpText());
        repository.setConnectionSignUp(new SimpleConnectionSignUp());
        return repository;
    }

    public UserIdSource getUserIdSource()
    {
        return new UserIdSource() {
            @Override
            public String getUserId()
            {
                return SecurityContext.getCurrentUser().getId();
            }
        };
    }

    @Bean
    @Scope(value = "request", proxyMode = ScopedProxyMode.INTERFACES)
    public Facebook facebook(ConnectionRepository repository)
    {
        Connection<Facebook> connection = repository.findPrimaryConnection(Facebook.class);
        return connection != null ? connection.getApi() : null;
    }

    @Bean
    public CanvasSignInController canvasSignInController(ConnectionFactoryLocator connectionFactoryLocator,
            UsersConnectionRepository usersConnectionRepository, Environment env)
    {
        return new CanvasSignInController(connectionFactoryLocator, usersConnectionRepository,
                new SimpleSignInAdapter(), env.getProperty("facebook.appKey"), env.getProperty("facebook.appSecret"),
                env.getProperty("facebook.canvasPage"));
    }
}
@配置
@使能社会
公共类FacebookConfig实现SocialConfiger
{
@注入
私有数据源;
@凌驾
public void addConnectionFactories(ConnectionFactoryConfigurer cfConfig,Environment env)
{
最终FacebookConnectionFactory fbcf=新的FacebookConnectionFactory(env.getProperty(“facebook.appKey”),
env.getProperty(“facebook.appSecret”);
fbcf.setScope(env.getProperty(“facebook.scope”);
cfConfig.addConnectionFactory(fbcf);
}
/**
*单例数据访问对象,提供对所有连接的访问
*用户。
*/
@凌驾
公共用户连接存储库getUsersConnectionRepository(ConnectionFactoryLocator ConnectionFactoryLocator)
{
JdbcUsersConnectionRepository=新的JdbcUsersConnectionRepository(数据源,
connectionFactoryLocator,Encryptors.noOpText());
setConnectionSignUp(新的SimpleConnectionSignUp());
返回存储库;
}
公共UserIdSource getUserIdSource()
{
返回新的UserIdSource(){
@凌驾
公共字符串getUserId()
{
返回SecurityContext.getCurrentUser().getId();
}
};
}
@豆子
@范围(value=“request”,proxyMode=ScopedProxyMode.INTERFACES)
公共Facebook(ConnectionRepository存储库)
{
Connection=repository.findPrimaryConnection(Facebook.class);
返回连接!=null?连接。getApi():null;
}
@豆子
公共画布控制器画布控制器(ConnectionFactoryLocator或ConnectionFactoryLocator,
用户连接存储库用户连接存储库,环境环境)
{
返回新的CanvasSignInControl(connectionFactoryLocator、usersConnectionRepository、,
新SimpleSignInAdapter()、env.getProperty(“facebook.appKey”)、env.getProperty(“facebook.appSecret”),
env.getProperty(“facebook.canvasPage”);
}
}

如何设置所需权限的作用域?

Class CanvasSignInController有一个用于在Facebook上请求权限的作用域属性,只需将此属性设置为有效值,所有内容就会进入新世界