2013-03-03 74 views
3

我在使用FBLoginView調用initWithReadPermission後重新授權發佈流的問題。我嘗試在代理函數裏面調用我可以獲取用戶信息的地方。在下一個對話框,要求發佈流的許可後,應用程序丟給我一個異常說Facebook SDK:FBLoginView重新授權發佈流

「‘com.facebook.sdk:InvalidOperationException異常’,理由是:「FBSession:這不是有效的重新授權,而以前的重新授權調用有尚未完成「。 「

我需要在讀取權限後調用,但如何防止此問題?

回答

1

根據您的錯誤,FBSession未打開。所以你應該檢查會話是否是

在嘗試重新授權之前打開。

+0

看到這些討論可能會幫助你:http://stackoverflow.com/questions/13933955/publish-or-manage-permissions-are-not-permited-to-to-be-requested-with-read-perm &http://stackoverflow.com/questions/14695312/fbsession-an-attempt-was-made-reauthorize-permissions-on-an-unopened-session – Vishal 2013-03-03 13:00:23

+0

此錯誤消息並不是說會話未打開,還有另一個檢查是否會話打開,如果沒有(錯誤消息是不同的)。 – Marcin 2014-01-01 23:09:36

0

在Facebook的sdk文檔的某處他們聲明,你不應該同時讀取和寫入權限。

最好的方法是使用讀取權限的init,然後只要用戶做了一個需要寫入權限的操作,第二次請求它(這是他們希望你實際做的事情,也因爲如果您使用iOS6 SSO,對於讀寫權限,我認爲您需要單擊2個不同的警報視圖,但無法在1個單一授權中點擊)

如果您確實需要同時讀取和寫入序列,請嘗試當您成功獲取讀取授權時,通過NSNotification,然後在您收到通知時嘗試獲得寫入權限。