java - 如何使用 spring social 以编程方式在 facebook 页面上发布?

标签 java facebook spring spring-social spring-social-facebook

我拼命尝试在 Facebook 页面(品牌页面,而不是用户墙)上自动发帖。我使用 spring social 作为框架。

想法如下:我有一个使用 spring social 的网络应用程序,我希望能够在相关的 facebook 品牌页面上以编程方式发布状态。品牌页面就是人们“喜欢”的这种页面,类似于https://www.facebook.com/cocacola

我尝试了以下方法: 1. 获取页面上具有管理员权限的有效用户的访问 token 2. 访问(如何?)页面,并在该页面上发帖。也许通过页面操作?或者什么...

我卡在了第 1 步,无法尝试第 2 步。对于第一步,我有:

FacebookConnectionFactory connectionFactory = new FacebookConnectionFactory("clientid", "secretkey");
OAuth2Operations op = connectionFactory.getOAuthOperations();

OAuth2Parameters params = new OAuth2Parameters();
  • 我应该把什么作为参数?我想我必须定义一个范围,对吧?
  • 哪个页面可以发布?

然后,我应该为管理员用户获取一个访问 token ,如下所示:

AccessGrant ag = op.exchangeCredentialsForAccess("username", "password", params);

accessToken = ag.getAccessToken();

在这里,我应该为用户提供一个访问 token ,这样用户就不需要通过 facebook 登录页面自行输入用户名/密码。但是,它不起作用。我有以下异常:

WARN : org.springframework.web.client.RestTemplate - POST request for "https://graph.facebook.com/oauth/access_token" resulted in 400 (Bad Request); invoking error handler

Oct 23, 2013 9:57:59 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [appServlet] in context with path [/myapp] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException: 400 Bad Request] with root cause org.springframework.web.client.HttpClientErrorException: 400 Bad Request

如果您能发布一个功能齐全的概念证明,我将不胜感激(我在那里找到了答案的要素,但我没能让它发挥作用...)。

感谢您的帮助!

最佳答案

检查 the documentation关于如何进行身份验证然后试试这个:

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()) {
    ...

如果有人知道如何将照片发布到页面,请告诉我。死在那里。

关于java - 如何使用 spring social 以编程方式在 facebook 页面上发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19551301/

相关文章:

java - 如何在ubuntu中的tomcat上运行一个网站?

java - 由 : java. lang.NullPointerException 引起:尝试调用虚拟方法 'java.lang.String com.facebook.Profile.getFirstName()'

java - 用于 spring mvc 3 的简单基于 session 的数据缓存

spring - 如何在 Spring Security 中为 REST API 调用返回 401?

java - 不清除重绘

Java 从 XML 中删除字符

java - 如何使用java变量向mysql表中插入值?

facebook - CakePHP 1.3:视频插件

c# - Fql 多查询在图形资源管理器中执行,但不在 c# .net 中执行

java - 更新查询并返回单列