spring-boot - 使用 Spring Boot 获取数据并将其发布到 facebook 中的页面
问题描述
我正在尝试第一次从 Spring Boot 访问 facebook api,并且遇到了困难,感谢您对前景的任何帮助。
我正在尝试获取数据并将其发布到页面但无法使用 spring boot 但它使用图形 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);
}
服务
public interface FBService {
public String getFacebookAuthorizeUrl();
public void getAccessToken(String code);
public PagedList<Post> getUserFeed();
public void postMessage(String message);
}
服务实现
@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));
}
在访问getUserFeed()
没有提要时,它会返回一个空对象并postMessage()
给出错误“用户不是 ID 测试页面的管理员”。
解决方案
推荐阅读
- sql - Oracle:根据不同列的值选择不同的列
- python - 如何导出然后导入密钥进行解密?
- azure - aks:尝试创建负载均衡器时出现未经授权的错误
- r - 如何在ggplot2的箱线图中添加每组的观察次数和中位数
- linux - 按范围查找编号文件 - 模式匹配 - 从命令行
- html - 使用 IOS 14 Safari/Chrome 在 IOS 14 Safari/Chrome 上加载 WebP 图像
- javascript - 如何使用 SH 文件在 Linux 中运行 JavaScript 文件
- android - 如何在 Kotlin Android 的 recyclerView 中以相反的顺序显示从 Firestore 检索到的数据?
- amazon-web-services - 用于秘密管理评估的 Convox 环境
- laravel - Laravel 模型没有从表中获得任何价值