0

我想在登錄Facebook後向我的用戶請求publish_actions。登錄成功,但publish_actions窗口甚至不會彈出。 我已經嘗試了下面的代碼,以獲得用戶的權限publish_actions到用戶的牆上,但它不斷返回錯誤。Facebook publish_permission正在返回錯誤

function autoPost(){ 
    FB.login(function(response){ 
     console.log("Response 1", response); 
     FB.api('/me/permissions/publish_actions', function(response) { 
      console.log("Response 2", response); 
      if ((response.data[0].status === "granted")){ 
       publish = 1; 
      } 
      else { 
       publish = 0; 
      } 
     }); 
    }, {scope: 'publish_actions', return_scopes: true}); 
} 

響應1返回對象{authResponse:對象,狀態: 「連接」}

響應2返回對象{數據:數組[0]}

ERROR本身是未捕獲TypeError:無法讀取未定義的屬性「狀態」

回答

1

你不必在你的代碼進行任何更改。只需訪問您的Facebook應用程序頁面並提交評論publish_actions,在您獲得批准後,一切都應該正常工作。

+0

這是問題,它實際上解決了我。 – Yax

+0

但我有一個問題,在這裏使用的權限:** 1 **。讓人們使用自定義作曲者 ** 2發佈到Facebook。發佈Open Graph故事 ** 3 **。將內容自動發佈到Facebook ** 4 **。讓人們使用「共享」對話框或「對話框」對話框發佈到Facebook 哪種方案適合我的情況?我選擇了3,它表示**應用程序不會被批准用於publish_actions的這種使用。要獲得批准,應用必須遵循我們的審覈標準和使用publish_actions的準則。** – Yax

+0

我認爲您的應用工作方式未獲批准。您可以先改變其工作方式以符合審覈標準。也許以後升級代碼:) – Phuc

1

首先,如果您已經使用return_scopes,則不需要使用其他API調用來獲取權限。已授權的權限將在FB.login的響應中。這就是說,如果你在授權過程中沒有被要求提供publish_actions,這很可能是因爲你正在嘗試與一個沒有角色的用戶在應用程序中。需要在Facebook上發佈之前,通過Facebook對其進行審覈。

錯誤很明顯,沒有「response.data [0]」。使用索引直接訪問數組值不是一個好主意。該陣列可能未被填充,因爲這裏就是這種情況。

大約登錄評論的更多信息:https://developers.facebook.com/docs/facebook-login/review