2016-01-22 84 views
-1

我想創建一個工具,它允許用戶一次性在多個媒體上發佈他的規劃:他必須在他的創建周計劃中填寫表單,然後通過通訊發佈,在他的臉書和他的網站上。通過Graph API與Facebook4j在Facebook頁面上發佈

我正在努力與facebook部分。我創建了一個應用程序,並使頁面訂閱到這個應用程序,然後我嘗試使用Facebook4j在頁面上發佈內容,但我甚至無法獲取該頁面。

這裏是我的代碼:

Facebook facebook = new FacebookFactory().getInstance(); 
facebook.setOAuthAppId("{app_id}", "{app_secret}"); 
facebook.setOAuthPermissions("public_profile, manage_pages, publish_pages, publish_actions"); 
facebook.setOAuthAccessToken(new AccessToken("app_id|app_secret", null)); 
try { 
     ResponseList<Account> accounts = facebook.getAccounts(); 
    } catch (FacebookException e) { 
     e.printStackTrace(); 
    } 

它總是返回我的錯誤:

An active access token must be used to query information about the current user. 

我怎麼能以積極的訪問令牌張貼在其suscribed到我的應用程序的頁面?

注:我不知道我確實需要一個應用程序。如果還有其他方式可以在多個頁面上發佈而不需要每次都要記錄日誌,那我也可以。 (某種永久頁面令牌可能?)

謝謝!

回答

0

好吧,首先,是的,你需要一個應用程序來執行這些請求。

爲了得到你所描述的你正在請求正確的權限,你仍然錯過了一個 - 即pages_show_list

此外,您必須將OAuthAccessToken設置爲用戶令牌而不是應用令牌。

+0

謝謝你的回答。 是否有可能獲取用戶令牌而不要求客戶端用他的賬戶登錄?例如,如果我有一個Facebook帳戶,它是我的所有客戶端頁面的編輯器,我在我的服務器屬性中存儲用戶名/密碼? – Labe

+0

親切。您可以將用戶令牌擴展爲長壽命令牌 - 請參閱[此處](https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension#expiration-and-extension-of -access的令牌)。只需在應用程序中針對/ me /權限進行測試,如果您仍然可以訪問長壽命的標記,則可以進行測試,如果沒有,則只需獲取新的標記。如果我的答案(和/或評論)幫助了您,我將不勝感激,如果您將我的答案標記爲解決方案。 –

相關問題