【问题标题】:Facebook iOS SDK - Strange Effects in Writing to StatusFacebook iOS SDK - 写入状态的奇怪效果
【发布时间】:2011-12-17 10:34:12
【问题描述】:

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

现在,发生了两件奇怪的事情,尽管查看了所有代码并搜索了论坛,但我还是不明白为什么。

请参阅下面的更新

首次登录

当用户刚刚登录时,如果他们共享状态或取消尝试这样做,则会显示如下脚本:

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

所有其他功能(例如,当它不是第一次时)似乎都可以正常工作。

我怀疑这与回调未触发有关,但我已经仔细检查了所有委托设置等。所有 facebook 委托方法都在 appDelegate 中,然后从视图控制器中引用。

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

非常感谢,

克里斯。

更新

感谢@Kristofer Sommestad 和@Senior 的帮助。我遇到了很多问题。

不要授权两次

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

更新的 SDK

在我发现我的问题后更新了 SDK - 所以请继续检查。

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

注销意味着什么

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

【问题讨论】:

    标签: iphone ios facebook login


    【解决方案1】:

    我也遇到了第一个问题,但通过确保没有触发两次身份验证来解决它。最初,我做了以下事情:

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

    不确定这是您的问题,但我注意到这搞砸了,因为它实际上触发了 2 个身份验证对话框,其中第二个以您也看到的 Javascript 输出结束。 出于某种原因,我认为如果authorize 已经这样做了,第二个不会触发对话......

    相反,我确保首先使用authorize:,但在使用-fbDidLogin 完成授权之前不会触发dialog:andParams:andDelegate(并将对话数据保存为实例变量以共享)。

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

    希望这对你也有帮助。

    【讨论】:

    • 感谢 Kristofer 和@Senior。最近几天有更新,所以我已经下载了它,并且至少有一个警告已经消失。我怀疑我也遇到了和你一样的双重身份验证问题,但我只是想知道如何阻止它。我的 sessiondelegate 是 AppDelegate 但对话框是从视图控制器调用的。你呢?
    • 是的,我有相同的设置,但确保AppDelegate 也显示对话框(通过NSNotification 将对话框数据作为有效负载)。这样,我可以将对话框数据保存为AppDelegate 中的实例变量,并使用它来显示来自-fbDidLogin 的对话框。或者,如果已经通过身份验证,只需在收到 NSNotification 后立即显示。
    • 您正确地确定了问题是双重授权。所以现在,我不会在请求授权的同时更新 Facebook 状态(提要对话框)。因此,如果用户已经授权该应用程序,我要么立即执行此操作,要么在 fbDidLogin 内执行此操作。我还有一些其他问题,我在更新的问题中记录了这些问题。感谢您为我指明正确的方向。
    • 没问题。祝你好运!那么……赏金呢? :)
    • 我认为勾选你的答案会做到这一点,但显然不是。我现在发给你了。谢谢。
    【解决方案2】:

    好的,我刚刚从 GitHub 存储库中拉取了数据,并且不再出现此错误。但是,它是调用 (void)dialog:(FBDialog*)dialog didFailWithError:(NSError *)error

    尝试更新到最新版本的 SDK 并重试。

    【讨论】:

      【解决方案3】:

      这个不需要的 javascript-view 也困扰着我。
      我只是使用 facebook feed 对话框 [facebook dialog: @"feed" andParams: myParameters andDelegate: ptrMyDialogDelegate];。如https://developers.facebook.com/docs/reference/dialogs/feed/ 所示。我在其他任何地方都没有其他授权。
      Delegate 是我的 AppModel-Class(不是 AppDelegate)。 FBDialogDelegate-Protocol 的所有方法都被正确调用,但是之后我关闭了这个烦人的视图。

      我没有使用 GIT。我从 src/ 目录(包括 src/JSON/ 子目录)和@ 987654326@(总共 23 个文件)到我现有的项目中。

      如果我下载 ZIP 文件或克隆 Facebook iOS SDK GIT-Repository 有什么不同吗?

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多