【问题标题】:Use app access token with spring-social facebook to query public pages使用带有 spring-social facebook 的应用访问令牌来查询公共页面
【发布时间】:2014-08-08 05:59:47
【问题描述】:

在此问题 (How to use Facebook appAccessToken with Spring Social) 中之前曾询问过使用应用访问令牌,Craig Walls 很好地解释了为什么 spring-social API 在大多数情况下应该基于用户。 p>

我有一个场景,但是我希望我们的服务器端应用程序进行一些不需要用户特定权限的查询。我为以下示例选择了一个随机公共页面

我想:

当我使用应用访问令牌在 Graph API 资源管理器 (https://developers.facebook.com/tools/explorer) 中测试这些时,它们工作正常。应用访问令牌是通过点击 https://graph.facebook.com/v2.0/oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials 并用我的 Facebook 客户端凭据替换 client_idclient_secret 获得的。

我们的应用程序希望能够为任何给定名称生成这些信息,以便我们可以查询公司的存在。

我们将对 Twitter、LinkedIn 和其他网站有类似的要求,所以我只是想检查一下当前 API 中是否有任何方法可以做到这一点,或者它是否不符合我们的要求。

【问题讨论】:

    标签: facebook spring facebook-graph-api spring-social spring-social-facebook


    【解决方案1】:

    您不需要获取应用访问令牌 - 您实际上可以使用由“|”分隔的应用 ID 和密码作为访问令牌。 - 您可以在文档中应用访问令牌部分的底部看到它:https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens

    【讨论】:

    • 你会如何在 spring social 中使用它?如果你有一个例子,那就太好了。
    【解决方案2】:

    Spring Social 的 Facebook API 绑定(还)不支持 v2.0,但这是我现在正在努力的事情......所以希望很快。一旦完成,肯定会有一些操作只适用于用户访问令牌,有些只适用于应用程序访问令牌,还有一些适用于任何一种(FWIW,Twitter 的 API 也有类似的情况)。

    密切关注 GitHub 中的项目或在 Twitter 上关注 @SpringSocial 以了解 v2.0 的内容何时可用。 (如果能在测试中获得任何帮助,我将不胜感激。)

    虽然通过应用令牌请求的连接框架获取您的 FacebookTemplate 完全没有意义(连接本质上是一个面向用户的概念),但您始终可以在任何需要的地方构建 FacebookTemplate,并为其提供通过 OAuth2Template 的 authenticateClient() 获得的应用访问令牌。您当然可以现在使用 v1.0 API 绑定来做到这一点,但我不确定应用令牌可以与哪些操作一起使用。

    FWIW,在我处理 v2.0 API 绑定时,我开始感觉到 FacebookTemplate 有机会携带两个令牌:一个用户令牌和一个应用程序令牌。这样,您甚至可以从从连接框架获得的 FacebookTemplate 执行以应用为中心的请求。那么您唯一需要手动构建 FacebookTemplate 的情况是,如果有一些操作适用于任何一种令牌,但结果会有所不同,具体取决于使用的令牌类型。

    【讨论】:

    • 感谢克雷格提供的信息。一定会密切关注该项目并尝试帮助测试新版本。我甚至在考虑同时使用RestTemplate 并使用您的类进行响应绑定,但这是假设它都是v2.0。我会检查我关心的 v2.0 响应是否存在差异。我正在查看的项目可能没有太多的维护预算,所以不想留下一个 API 版本,当我不在的时候,它会在明年结束生命 ;-)
    • 目前,我已经转换了除 FeedTemplate 之外的所有 API 绑定。此外,即使一切正常,许多域类型也需要进行审查,以确保它们与 v2.0 提供的内容相匹配。这是我希望今天或下周初完成的事情。完成所有操作后,它将在快照构建中准备好进行审核。
    • 感谢 Craig 的更新 - 听起来很棒。我会留意 github repo。
    • 只是快速跟进:上周我削减了 Spring Social Facebook 2.0.0.M1,包括 v2.0 API 绑定更新。确保您的构建中有 Spring 的里程碑 repo (repo.spring.io/milestone),然后使用“org.springframework.social:spring-social-facebook:2.0.0.M1”作为依赖项(此处表示为 Gradle 坐标...调整相应地适用于 Maven 或其他构建工具)。
    • 感谢克雷格 - 我终于有机会使用这个里程碑并尝试了一些东西。我在这里发现了一个错误:jira.spring.io/browse/SOCIALFB-153.
    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 2012-04-26
    • 2011-11-29
    • 2015-06-09
    • 2013-03-09
    • 2012-04-12
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多