2013-03-03 78 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,然后在您收到通知时尝试获得写入权限。