2013-10-23 54 views
1

我拼命地嘗試在Facebook上自動發佈帖子(品牌頁面,而不是用戶牆)。我使用春季社交作爲框架。如何以編程方式張貼與春季社交的Facebook頁面?

的想法是這樣的:我使用的彈簧社會已經一個web應用程序,我希望能夠發佈狀態編程相關品牌的Facebook頁面上。該品牌頁面是這樣的頁面的人「喜歡」,因爲https://www.facebook.com/cocacola

類似的東西我嘗試了以下內容:1。 與獲得管理員的有效用戶的訪問令牌權頁面 2.可以訪問(如何?)到頁面,並在該頁面上發佈。也許通過pageoperation?或什麼...

我卡在第一步,我無法嘗試第二步。對於第一步,我有:

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」 導致400(錯誤請求)POST請求;調用錯誤處理程序

2013年10月23日下午9時57分59秒org.apache.catalina.core.StandardWrapperValve調用 重度:Servlet.service()進行的servlet [appServlet]與路徑上下文[/ MYAPP]拋出異常[請求處理失敗;嵌套的例外是org.springframework.web.client.HttpClientErrorException:400錯誤的請求]與根源 org.springframework.web.client.HttpClientErrorException:400錯誤的請求

我將不勝感激,如果你能發佈一個功能齊全概念證明(我找到了答案的元素,但我沒有設法使它工作......)。

感謝您的幫助!

+0

你想出來了嗎?如果是這樣,你可以分享嗎? – Maurice

回答

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); 
} 

你需要的「manage_pages」的特權,並知道你想要發佈到頁面的ID,或者你可以得到的頁面用戶有權訪問

PageOperations pageOps = facebook.pageOperations(); 
for(org.springframework.social.facebook.api.Account account : pageOps.getAccounts()) { 
    ... 

如果有人知道如何將照片發佈到網頁上,請告訴我。死在那裏。

+0

解決了將照片發佈到頁面上的問題。編輯了spring-social-facebook,並添加了一個方法PageTemplate.postPhoto,它不採用albumID,而是直接發佈到頁面。 https://github.com/kdubb1337/spring-social-facebook/blob/master/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/impl/PageTemplate.java – Erich