Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Spring boot 使用spring boot获取数据并将其发布到facebook中的页面_Spring Boot_Spring Social - Fatal编程技术网

Spring boot 使用spring boot获取数据并将其发布到facebook中的页面

Spring boot 使用spring boot获取数据并将其发布到facebook中的页面,spring-boot,spring-social,Spring Boot,Spring Social,我第一次尝试从SpringBoot访问FacebookAPI,遇到了麻烦,非常感谢您的帮助 我正在尝试获取数据并将其发布到页面,但无法使用spring boot,而是使用graph api 控制器 @RestController @RequestMapping(value = "/fb") public class FBController { private FBService fbService; @Autowired public FBCon

我第一次尝试从SpringBoot访问FacebookAPI,遇到了麻烦,非常感谢您的帮助

我正在尝试获取数据并将其发布到页面,但无法使用spring boot,而是使用graph api

控制器

@RestController
@RequestMapping(value = "/fb")
public class FBController {

    private FBService fbService;

    @Autowired
    public FBController(FBService fbService) {
        this.fbService = fbService;
    }

    @GetMapping(value = "/getFacebookAuthorizeUrl")
    public String getFacebookAuthorizeUrl(){
        return fbService.getFacebookAuthorizeUrl();
    }

    @GetMapping(value = "/facebook")
    public void getAccessToken(@RequestParam String code){
        fbService.getAccessToken(code);
    }

    @GetMapping(value = "/userfeed")
    public PagedList<Post> getUserFeed(){
      return fbService.getUserFeed();
    }
    
    @PostMapping(value = "/message")
    public void postMessage(@RequestParam String message){
        fbService.postMessage(message);
    }
@RestController
@请求映射(value=“/fb”)
公共类控制器{
私人服务;
@自动连线
公共FBC控制器(FBService FBService){
this.fbService=fbService;
}
@GetMapping(value=“/getFacebookAuthorizeUrl”)
公共字符串getFacebookAuthorizeUrl(){
返回fbService.getFacebookAuthorizeUrl();
}
@GetMapping(value=“/facebook”)
public void getAccessToken(@RequestParam字符串代码){
fbService.getAccessToken(代码);
}
@GetMapping(value=“/userfeed”)
公共页面列表getUserFeed(){
返回fbService.getUserFeed();
}
@PostMapping(value=“/message”)
public void postMessage(@RequestParam String message){
fbService.postMessage(消息);
}
服务

public interface FBService {

    public String getFacebookAuthorizeUrl();
    public void getAccessToken(String code);   
    public PagedList<Post>  getUserFeed();    
    public void postMessage(String message);
}
公共接口服务{
公共字符串getFacebookAuthorizeUrl();
public void getAccessToken(字符串代码);
公共页面列表getUserFeed();
公共无效后消息(字符串消息);
}
ServiceImpl

@Component
public class FBLocalService implements FBService{

    String accessToken;

    @Value("${spring.social.facebook.app-id}")
    private String facebookAppId;

    @Value("${spring.social.facebook.app-secret}")
    private String facebookSecretId;

    @Value("${redirect.url}")
    private String redirectUrl;

    private  FacebookConnectionFactory createConnection(){
        return new FacebookConnectionFactory(facebookAppId,facebookSecretId);
    }

    @Override
    public String getFacebookAuthorizeUrl() {
        OAuth2Parameters params = new OAuth2Parameters();
        params.setRedirectUri(redirectUrl);
        params.setScope("email");
        return createConnection().getOAuthOperations().buildAuthenticateUrl(params);
    }

   
    @Override
    public void getAccessToken(String code) {
        accessToken = createConnection().getOAuthOperations().exchangeForAccess(code,redirectUrl,null).getAccessToken();
    }

 @Override
    public PagedList<Post> getUserFeed() {        
        return new FacebookTemplate(accessToken).feedOperations().getFeed();
    }

@Override
    public void postMessage(String message) {
        new FacebookTemplate(accessToken).pageOperations().post(new PagePostData(message));
    }
@组件
公共类FBLocalService实现FBService{
字符串访问令牌;
@值(${spring.social.facebook.app id})
私有字符串facebookAppId;
@值(${spring.social.facebook.app secret})
私有字符串facebookSecretId;
@值(“${redirect.url}”)
私有字符串重定向URL;
专用FacebookConnectionFactory createConnection(){
返回新的FacebookConnectionFactory(facebookAppId、facebookSecretId);
}
@凌驾
公共字符串getFacebookAuthorizeUrl(){
OAuth2Parameters params=新的OAuth2Parameters();
参数setRedirectUri(重定向URL);
参数设置范围(“电子邮件”);
返回createConnection().getOAuthooperations().buildAuthenticateUrl(参数);
}
@凌驾
public void getAccessToken(字符串代码){
accessToken=createConnection().GetOAuthoOperations().exchangeForAccess(代码,重定向URL,null).getAccessToken();
}
@凌驾
公共页面列表getUserFeed(){
返回新的FacebookTemplate(accessToken).feedOperations().getFeed();
}
@凌驾
公共void postMessage(字符串消息){
新建FacebookTemplate(accessToken).pageOperations().post(新建PagePostData(message));
}

访问
getUserFeed()
时,没有返回任何提要,因为它是一个空对象,
postMessage()
给出错误“用户不是ID为Test的页面管理员”.

不要使用Spring Social,它多年前就处于休眠状态并已存档。只需使用普通的Facebook rest api即可。你好,M.Deinum,普通的Facebook rest api意味着restfb?只需Facebook公开的rest端点即可。