【问题标题】:I am trying to access Facebook using spring.io social but the isAuthorized() method fails我正在尝试使用 spring.io social 访问 Facebook,但 isAuthorized() 方法失败
【发布时间】: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";
}

}

【问题讨论】:

    标签: java facebook spring


    【解决方案1】:

    在 Facebook 应用程序高级设置中,我的应用程序被配置为“本机或桌面应用程序”。这导致在 OAuth 调用期间出现错误 400。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多