先前已在此问题(How to use Facebook appAccessToken with Spring Social)中询问了使用应用访问权限令牌,而 Craig Walls 已经很好地解释了为什么spring-social API在大多数情况下都应该基于用户。
我有一个场景,但是我希望我们的服务器端应用程序能够进行一些不需要用户特定权限的查询。我选择了一个随机的公共页面,下面是
我想:
当我使用App Access Token在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_id
和client_secret
来获取应用访问令牌。
我们的应用程序希望能够为任何给定的名称制作这些名称,以便我们对公司的存在进行查询。
我们对Twitter,LinkedIn和其他人有类似的要求,所以我只想检查在当前的API中是否有任何方法可以做到这一点,或者它是否不符合我们的要求。
答案 0 :(得分:2)
您无需获取应用访问令牌 - 您实际上可以使用以“|”分隔的应用ID和密码作为访问令牌。 - 您可以在文档中的应用访问令牌部分底部看到它:https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens
答案 1 :(得分:1)
Spring Social的Facebook API绑定(尚未)支持v2.0,但这是我现在正在努力的事情......所以希望很快。一旦完成,肯定会有一些只能使用用户访问令牌的操作,有些只能使用app访问令牌,还有一些可以使用它们(FWIW,Twitter&#API;有类似的情况)。
密切关注GitHub中的项目或关注Twitter上的@SpringSocial以了解v2.0的可用时间。 (我很感激我在测试时可以获得任何帮助。)
虽然通过app token请求的连接框架获取你的FacebookTemplate毫无意义(连接本质上是一个面向用户的概念),你总是可以在任何需要的地方构建一个Facebook模板,给它一个通过OAuth2Template的authenticateClient()获取的app访问令牌。您当然可以使用v1.0 API绑定执行 now ,但我不确定应用程序令牌的操作是什么。
FWIW,当我正在研究v2.0 API绑定时,我开始感觉到FacebookTemplate携带两个令牌的机会:一个用户令牌和一个app令牌。这样,您甚至可以从连接框架中获取的FacebookTemplate执行以应用为中心的请求。那么你唯一想要手动构建Facebook模板的是,如果有一些操作可以使用哪种令牌,但结果会有所不同,具体取决于使用的令牌类型。