Facebook的iOS SDK – 写入状态的奇怪效果

我正在更新我的应用程序使用xCode 4,iOS5和最新的Facebook SDK。 以前一切正常。

现在,两个奇怪的事情正在发生,尽pipe审查所有的代码和search论坛,我不明白为什么。

见下面的更新

第一次login

当用户刚刚login时,如果他们共享状态或取消尝试,则脚本显示如下:

<script type="text/javascript"> window.location.href="fbconnect:\/\/ success#_=_"; </script> 

所有其他function(例如,当它不是第一次)似乎工作正常。

我怀疑这是与callback不开火,但我已经双重检查所有委托设置等。所有的Facebook委托方法是在AppDelegate,然后从视图控制器引用。

其他人遇到过这个问题吗? 任何指针都会受到热烈的欢迎。 我还没有发布任何代码,因为我不确定哪个位要关注,我已经使用了来自Facebook开发者网站的所有标准代码。

非常感谢,

克里斯。

UPDATE

感谢@Kristofer Sommestad和@Senior的帮助。 我有一些问题。

不要授权两次

Feed对话请求也请求授权,所以不要同时请求它们。

更新的SDK

我发现我的问题后更新了SDK – 请继续检查。

我没有意识到的是,使用SDK代码所需的代码已经改变,特别是调用提要对话框的代码。 看看https://developers.facebook.com/docs/reference/dialogs/feed/ 。

什么注销手段

注销只是将用户从应用程序中注销,而不是从Facebook中删除。

我也遇到了第一个问题,但通过确保身份validation没有被触发两次来解决。 最初,我做了以下工作:

 [_facebook authorize:permissions]; [_facebook dialog:@"feed" andParams:params andDelegate:self]; 

不知道这是你的问题,但我注意到,这事情搞砸了,因为它实际上触发了2个authentication对话框,其中第二个结束了你也看到的Javascript输出。 出于某种原因,我认为,如果authorize已经这样做,第二个不会触发对话….

相反,我确保authorize:首先,但不触发dialog:andParams:andDelegate直到使用-fbDidLogin完成授权(并将对话框数据保存为实例variables)。

还没有看到任何问题,仍然能够发布消息,但也许它与第一个问题(?)有关。

希望这也能帮助你。

好吧,我只是从GitHub仓库拉了一下,我没有得到这个错误了。 但是,它调用(void)对话框:(FBDialog *)dialog didFailWithError:(NSError *)error

尝试更新到最新版本的SDK,然后重试。

这种不必要的JavaScript视图也困扰我。
我只是使用Facebook的饲料对话框 [facebook dialog: @"feed" andParams: myParameters andDelegate: ptrMyDialogDelegate]; 。 如https://developers.facebook.com/docs/reference/dialogs/feed/所示&#x3002; 我在其他地方没有别的授权。
委托是我的AppModel类(不是AppDelegate)。 FBDialogDelegate -Protocol的所有方法都被正确调用,但是closures这个恼人的视图之后。

我没有使用GIT。 我下载了ZIP文件,并将src /目录下的所有源文件*.[h|m] (包括src / JSON / subdir)和FBDialog.bundle (共23个文件)复制到我现有的项目中。

如果我下载ZIP文件或克隆Facebook iOS SDK GIT-Repository,它有什么区别吗?

要将Facebook类集成到我现有的MyApp项目中(意味着像Xcode Project Navigator中显示的MyApp类树),我必须以同样的方式复制(例如拖放或Xcode“广告文件…”)Facebook类,不是吗?