2012-10-02 51 views
1

我們正在做一個數字radioplayer其中聽衆可以將消息發送到演播室。這個想法是,用戶將在網站上填寫一個textarea,按下按鈕,並將消息發佈到DJ正在監視它的工作室的Facebook牆上。簡單張貼到Facebook頁面牆作爲authed API用戶

這適用於用戶的牆壁完全正常,但是當我嘗試發佈到一個頁面牆上,我得到這個錯誤:

"(#200) The user has not granted the application the permission to automatically publish feed stories" 

我是不是忘了什麼東西?或者這是不可能的?用戶是否需要喜歡頁面?還是有需要更改爲頁面管理員的設置?

我創建了一個測試頁面,我喜歡它,我的帳戶進行了測試。我也檢查了「任何人都可以在x頁面的時間表上發帖」。但沒有幫助。

這裏是simplefied代碼:

function facebookPost(target,content) { 
    FB.api('/'+target+'/feed','post',{ 
     message:message 
    },function(res){ 
     console.log(res); 
    } 
} 

我一直在工作與API了一段時間,但是這一次真的抓傷我的頭。

在此先感謝。

編輯:我發現,當頁面的管理是他自己的網頁上發佈的錯誤僅提高。當我將'manage_pages'添加到燙髮時,我不會收到錯誤消息,但是帖子是以頁面的名義顯示的,例如狀態更新。

所以它適用於其他用戶,但只有當他們沒有「喜歡」的頁面,然後再發布,否則頁面管理員不通知的新職位,他還看不出來,只有用戶和他朋友可以。 (這是一個問題,因爲DJ的必須看到這些帖子)

有沒有人遇到過這種行爲?

+0

你從用戶請求哪些權限? – CBroe

+0

只有publish_stream,就像我說過的,如果'target'是一個用戶ID,它就可以正常工作。我還發現,只有當頁面管理員試圖在他自己的頁面上發佈內容時纔會引發此錯誤。我將編輯問題 – Brmm

+0

,更好地使用publish_actions而不是publish_stream。不會打開第二個權限對話框。 – luschn

回答

0

對於那些即將與同樣的錯誤這個頁面,我發現,你需要publish_stream不publish_actions。

即使Facebook的文檔說publish_actions取代publish_stream。當我爲publish_actions做了一個FB.login時,它通過了,但是這個帖子和帖子的作者有相同的錯誤。

當我要求publish_stream,它提出了我的對話,以請求新的權限,我打了確定後,職位的工作。

的代碼我使用:

params={message: "Your message on the wall."} 

FB.login(function(response) { console.log(response) }, {scope:'publish_stream'}) 
FB.api('/<The Page ID>/feed', 'post', params, function(response) { console.log(response) });