我拼命想在Facebook 页面 (品牌页面,而不是用户墙)上自动发帖。我使用spring social作为框架。
这个想法如下:我有一个使用spring社交的网络应用程序,我希望能够在相关的facebook品牌页面上发布状态 以编程方式 。品牌页面就是这种人们“喜欢”的页面,类似于https://www.facebook.com/cocacola
我尝试了以下内容: 1.在页面上获取具有管理员权限的有效用户的访问令牌 2.获取页面的访问权限(如何?),并在该页面上发布。也许通过pageoperation?什么......
我陷入了第一步,我无法尝试第二步。第一步,我有:
FacebookConnectionFactory connectionFactory = new FacebookConnectionFactory("clientid", "secretkey");
OAuth2Operations op = connectionFactory.getOAuthOperations();
OAuth2Parameters params = new OAuth2Parameters();
然后,我应该为admin用户获取一个访问令牌,如下所示:
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调用 严重:Servlet [appServlet]的Servlet.service()在路径[/ myapp]的上下文中引发异常[请求处理失败;嵌套异常是org.springframework.web.client.HttpClientErrorException:400 Bad Request]的根本原因 org.springframework.web.client.HttpClientErrorException:400 Bad Request
如果你能发布一个功能齐全的概念证明我会很感激(我找到了答案的元素,但我没有设法让它发挥作用......)。
感谢您的帮助!
答案 0 :(得分:1)
检查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);
}
您需要&#39; manage_pages&#39;特权和知道您要发布到的页面的ID,或者您可以获取用户有权访问的页面
PageOperations pageOps = facebook.pageOperations();
for(org.springframework.social.facebook.api.Account account : pageOps.getAccounts()) {
...
如果有人想出如何将照片发布到网页上,请与我们联系。在那里死去。