2016-01-22 82 views
-1

我想创建一个工具,它允许用户一次性在多个媒体上发布他的规划:他必须在他的创建周计划中填写表单,然后通过通讯发布,在他的脸书和他的网站上。通过Graph API与Facebook4j在Facebook页面上发布

我正在努力与facebook部分。我创建了一个应用程序,并使页面订阅到这个应用程序,然后我尝试使用Facebook4j在页面上发布内容,但我甚至无法获取该页面。

这里是我的代码:

Facebook facebook = new FacebookFactory().getInstance(); 
facebook.setOAuthAppId("{app_id}", "{app_secret}"); 
facebook.setOAuthPermissions("public_profile, manage_pages, publish_pages, publish_actions"); 
facebook.setOAuthAccessToken(new AccessToken("app_id|app_secret", null)); 
try { 
     ResponseList<Account> accounts = facebook.getAccounts(); 
    } catch (FacebookException e) { 
     e.printStackTrace(); 
    } 

它总是返回我的错误:

An active access token must be used to query information about the current user. 

我怎么能以积极的访问令牌张贴在其suscribed到我的应用程序的页面?

注:我不知道我确实需要一个应用程序。如果还有其他方式可以在多个页面上发布而不需要每次都要记录日志,那我也可以。 (某种永久页面令牌可能?)

谢谢!

回答

0

好吧,首先,是的,你需要一个应用程序来执行这些请求。

为了得到你所描述的你正在请求正确的权限,你仍然错过了一个 - 即pages_show_list

此外,您必须将OAuthAccessToken设置为用户令牌而不是应用令牌。

+0

谢谢你的回答。 是否有可能获取用户令牌而不要求客户端用他的账户登录?例如,如果我有一个Facebook帐户,它是我的所有客户端页面的编辑器,我在我的服务器属性中存储用户名/密码? – Labe

+0

亲切。您可以将用户令牌扩展为长寿命令牌 - 请参阅[此处](https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension#expiration-and-extension-of -access的令牌)。只需在应用程序中针对/ me /权限进行测试,如果您仍然可以访问长寿命的标记,则可以进行测试,如果没有,则只需获取新的标记。如果我的答案(和/或评论)帮助了您,我将不胜感激,如果您将我的答案标记为解决方案。 –

相关问题