我想使用restfb发布到我的一个页面。我想发布为页面本身,而不是用户发布到页面的墙上。
这是我使用的代码:
public class App {
//user token for accessing the page as admin
private static final String INITIAL_ACCESS_TOKEN = "#";
public static void main(String[] args) throws Exception {
restfb();
}
public static void restfb() throws Exception {
DefaultFacebookClient fbClient;
Connection myAccounts;
fbClient = new DefaultFacebookClient(INITIAL_ACCESS_TOKEN, Version.VERSION_2_5);
myAccounts = fbClient.fetchConnection("me/accounts", Account.class);
String pageToken = null;
//retrieve the page token
for(Object a : myAccounts.getData()) {
Account account = (Account)a;
if("MyPage".equals(account.getName())) {
pageToken = account.getAccessToken();
break;
}
}
System.out.println(pageToken); //not null here
//post to the page
fbClient = new DefaultFacebookClient(pageToken, Version.VERSION_2_5);
//"me" should refer to the page itself..?
fbClient.publish("me/feed", FacebookType.class, Parameter.with("message", "Aloha! ;)"));
}
}
我收到错误
收到OAuthException类型的Facebook错误响应:(#200)用户未授权应用程序执行此操作(代码200,子代码为null)
我已经访问了这个网址:
https://www.facebook.com/dialog/oauth?client_id=###&redirect_uri=###&scope=manage_pages,publish_actions,user_actions:pagealias&response_type=code
它要求我授权我的应用发布和管理我的网页,然后我就批准了。
该应用程序不公开,因为它是我想用于开发的测试应用程序(因此我没有要求进行审核)。
我错过了什么?应用程序需要哪些其他权限才能正常发布?
答案 0 :(得分:0)
您应该请求publish_pages
权限发布为网页。
https://developers.facebook.com/docs/facebook-login/permissions#reference-publish_pages