我想张贴在facebook页面的墙上。我可以使用App Access令牌在用户墙上发布。
我通过扩展DefaultFacebookClient获得了App Access Token
public class ConnectionService extends DefaultFacebookClient{
public ConnectionService(String appId, String appSecret) {
AccessToken accessToken = this.obtainAppAccessToken(appId, appSecret);
this.accessToken = accessToken.getAccessToken();
}
}
有了这个,我可以使用appID和appSecret发布到用户墙。但是当我试图发布到Page Wall时 我收到“用户未授权应用程序执行此操作”的错误
任何人都可以提供建议吗?
答案 0 :(得分:6)
要在Facebook页面墙上发布,您需要按照以下步骤操作:
final FacebookClient fb = new DefaultFacebookClient(PAGE_ACCESS_TOKEN);
final Page page = facebookClient.fetchObject(PAGE_NAME, Page.class);
facebookClient.publish("PAGE_NAME/feed", FacebookType.class, Parameter.with("message", "RestFB test"));
答案 1 :(得分:1)
App Access Token是最基本的,不允许您发布任何内容。为了将某些内容发布到Facebook页面(作为页面),您需要获得页面访问令牌。
这个过程有点复杂,因为您实际上需要首先使用“manage_pages”权限授权用户,使用用户访问令牌,您可以调用API来获取页面访问令牌(/ me / accounts)。 / p>
请参阅以下链接:
顺便说一句,不推荐使用REST API:https://developers.facebook.com/blog/post/616/
你也可以尝试“客户端令牌”(开发者设置>高级),我从来没有使用过那个,但它可能是最简单的解决方案。在任何情况下,App Access令牌都是错误的。
答案 2 :(得分:0)
确保在对用户进行身份验证时提到的范围也包括manage_pages
。如果未在范围中包含此错误,则会发生此错误。请参阅this
答案 3 :(得分:0)
因为你从java类生成访问令牌。你可以从你的facebook个人资料页面设置你管理应用程序链接中的用户所需的权限,并在这里获取访问令牌.....