【发布时间】:2014-11-05 16:45:44
【问题描述】:
我正在尝试使用 https://spring.io/guides/gs/accessing-facebook/ 访问 Facebook。
我使用“导入 Spring 入门内容”在 Spring Tool Suite 中导入了应用程序。我可以使用“gradlew bootRun”运行应用程序,也可以使用“gradlew build”。
我遇到的问题是:好像在HelloController类中测试
if (!facebook.isAuthorized())
不起作用。应用程序没有执行剩余的语句并返回“hello”视图,而是继续执行语句
return "redirect:/connect/facebook"
好像 .isAutorized() 方法失败了。
但是,当我在同一个网络浏览器中打开 www.facebook.com 时,我得到的是我的(登录的)Facebook 主页。使用该应用程序登录 Facebook 似乎工作正常。请注意,我在测试应用程序之前已明确退出 Facebook。
请注意:
- 我已在 developer.facebook.com 中注册了该应用程序。
- 我将我的 Facebook AppID 和 AppSecret 提交到 application.properties 文件中。
- 我使用 Vitalwerks No-IP 在 Facebook 应用程序站点 URL 中提交了 hostname.domain。在我的路由器中,我将公共 IP 地址端口 80 映射到服务器的内部 IP 地址 端口 8080。我可以使用 hostname.domain 访问应用程序。
我做错了什么?控制器类如下所示:
@Controller
@RequestMapping("/")
public class HelloController {
private Facebook facebook;
@Inject
public HelloController(Facebook facebook) {
this.facebook = facebook;
}
@RequestMapping(method=RequestMethod.GET)
public String helloFacebook(Model model) {
if (!facebook.isAuthorized()) {
return "redirect:/connect/facebook";
}
model.addAttribute(facebook.userOperations().getUserProfile());
PagedList<Post> homeFeed = facebook.feedOperations().getHomeFeed();
model.addAttribute("feed", homeFeed);
return "hello";
}
}
【问题讨论】: