[英]how to programmatically post on facebook page with spring social?
我拼命试图在Facebook 页面 (品牌页面,而不是用户界面)上发布自动帖子。 我正在使用Spring Social作为框架。
想法如下:我有一个使用Spring Social的Web应用程序,我希望能够以编程方式在相关的Facebook品牌页面上发布状态。 品牌页面就是人们“喜欢”的这种页面,类似于https://www.facebook.com/cocacola
我尝试了以下操作:1.在页面上直接使用admin获得有效用户的访问令牌2.在页面上进行访问(如何?),然后在该页面上发布。 也许通过页面操作? 或者其他的东西...
我停留在第一步,但无法尝试第二步。 对于第一步,我有:
FacebookConnectionFactory connectionFactory = new FacebookConnectionFactory("clientid", "secretkey");
OAuth2Operations op = connectionFactory.getOAuthOperations();
OAuth2Parameters params = new OAuth2Parameters();
然后,我应该为管理员用户获取访问令牌,如下所示:
AccessGrant ag = op.exchangeCredentialsForAccess("username", "password", params);
accessToken = ag.getAccessToken();
在这里,我应该为用户提供访问令牌,以使用户不需要通过facebook登录页面输入用户名/密码。 但是,它不起作用。 我有以下例外:
警告:org.springframework.web.client.RestTemplate-对“ https://graph.facebook.com/oauth/access_token ”的POST请求导致400(错误请求); 调用错误处理程序
2013年10月23日晚上9:57:59 org.apache.catalina.core.StandardWrapperValve在路径[/ myapp]的上下文中为Servlet [appServlet]调用SEVERE:Servlet.service()引发异常[请求处理失败; 嵌套的异常是org.springframework.web.client.HttpClientErrorException:400错误请求],根本原因是org.springframework.web.client.HttpClientErrorException:400错误请求
如果您能发布功能齐全的概念证明,我将不胜感激(我在那里找到了答案的要素,但我没有设法使其有效……)。
谢谢你的帮助!
查看有关如何进行身份验证的文档 ,然后尝试以下操作:
import org.springframework.social.connect.Connection;
import org.springframework.social.connect.ConnectionRepository;
import org.springframework.social.connect.UsersConnectionRepository;
import org.springframework.social.facebook.api.Facebook;
...
@Inject
private UsersConnectionRepository usersConnectionRepository;
public void postStatusOnPage(String userId, String pageId, String message) {
ConnectionRepository connectionRepository = usersConnectionRepository.createConnectionRepository(userId);
Connection<Facebook> facebookConnec = connectionRepository.getPrimaryConnection(Facebook.class);
Facebook facebook = facebookConnec.getApi();
facebook.pageOperations().post(pageId, message);
}
您将需要'manage_pages'特权,并知道要发布到的页面的ID,否则您将获得用户有权访问的页面
PageOperations pageOps = facebook.pageOperations();
for(org.springframework.social.facebook.api.Account account : pageOps.getAccounts()) {
...
如果有人想出如何在页面上发布照片,请告诉我。 死在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.