繁体   English   中英

如何在Spring Social上以编程方式发布在Facebook页面上?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM