FBSessionDelegate 方法未触发

2024-04-30

我正在尝试实施最新的 Facebook Connect SDK,但遇到了一些麻烦。由于某种原因,委托回调FBSessionDelegate协议没有被解雇。我已按照 git Facebook 页面上的说明进行操作,并尝试模仿 Facebook 示例应用程序,但没有成功。我在这里要疯了,所以我要发布我的代码,也许有人会看到我错过的一些愚蠢的东西。

#import <Foundation/Foundation.h>
#import "FBConnect.h"

@interface FacebookWrapper : UIViewController <FBSessionDelegate, FBRequestDelegate, FBDialogDelegate>{
 Facebook* _facebook;
 NSArray* _permissions;
}

@property(readonly) Facebook *facebook;

- (void)login;

@end

#import "FacebookWrapper.h"

static NSString* kAppId = @"1234455667778";

@implementation FacebookWrapper

@synthesize facebook = _facebook;

- (id)init {
 if (self = [super init]) {
  _permissions =  [[NSArray arrayWithObjects: @"read_stream", @"offline_access",nil] retain];
  _facebook = [[Facebook alloc] initWithAppId:kAppId];

 }
 return self;
}

- (void)dealloc {
 [_facebook release];
 [_permissions release];
 [super dealloc];
}

- (void)login {
 [_facebook authorize:_permissions delegate:self];
}

- (void)fbDidLogin {
 NSLog(@"Did Log In");
}

- (void)fbDidNotLogin:(BOOL)cancelled {
 NSLog(@"Failed to log in");
}

- (void)fbDidLogout {
 NSLog(@"Logged Out");
}

从另一个班级调用这个,

FacebookWrapper *fw = [[FacebookWrapper alloc] init];
[fw login];

我在电话上看到的行为符合预期。 Facebook 应用程序在 init 时启动并请求权限。然后手机将我的应用程序带回前台,但代表们FBSessionDelegate从未被解雇。我已经使用我的应用程序 ID 在 Facebook 示例应用程序中尝试过此操作,效果很好。我不知道有什么区别。


我解决了这个问题。在App Delegate中,您需要覆盖handleOpenURL。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [[facebookWrapper facebook] handleOpenURL:url];
}

如果您像我一样创建一个包装类,您将需要在应用程序委托中拥有它的一个实例,以便您可以调用 Facebook 类中的 hanleOpenURL 方法。另请注意,我的 FacebookWrapper 类中的 Facebook 实例有一个公共只读属性,因此我可以调用 handlOpenURL。

通过执行此操作,您的应用程序将知道当它从 Facebook 应用程序内部获取权限返回时要继续到哪里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FBSessionDelegate 方法未触发 的相关文章

随机推荐

  • 如何删除 XML::Simple 输出中的 标记?

    我正在使用 Perl 创建一个 XML 文件 XML 简单 http search cpan org dist XML Simple模块 我成功创建了 XML 文件 但问题是我遇到了
  • Cabal 在 NixOS 上构建时找不到外部库

    我正在尝试使用 cabal2nix 在 NixOS 上构建一个内部 Haskell 项目 它包装 并因此依赖 一个外部库 在 Ubuntu 上可以通过以下方式构建 wget设置源 然后运行make make install ldconfig
  • Python 记录器应该作为参数传递吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正在开发的 Python 应用程序需要一个记录器 一位同事认为应该在每个使用它的类中创建和配置记录器 我的观点是 它应该在应用程序启动时创建
  • Excel VBA - 将 .xls 附加到文件名以打开文件

    我有代码可以打开带有可变日期的文件 如下所示 如果不在输入框中输入 m d y xls 此代码将无法运行 我只想在输入框中输入 m d y 请看一下并让我知道我缺少什么 谢谢 Dim wbkOpen As Workbook Dim strF
  • 如何使用 spring-test-junit5 进行嵌套测试?

    我一直在玩JUnit 5 http junit org junit5 and 弹簧测试junit5 https github com sbrannen spring test junit5 然后我尝试使用嵌套测试 http junit or
  • Firebase 云功能 - Stripe Connect Webhook 未触发

    我正在尝试设置我的 stripe webhook 以便在创建 更新 Stripe Connect 帐户或执行任何操作时自动调用 Firebase 云函数 仅当我手动转到 Stripe 仪表板 gt Webhooks 并点击 发送测试 Web
  • 在给定时间后停止 java 中的线程 - 不起作用

    我有一个复杂的函数 优化 可能会进入循环或只是花费太多时间 并且允许的时间由用户设置 因此 我试图在单独的线程中运行该函数 并在超过最大时间时停止它 我使用类似于下面的代码 但它不起作用 所以 int timeMax 2 time in m
  • 如何处理WPF中Grid Splitter生成的事件?

    我想要一个事件处理程序来处理移动网格拆分器时的事件 我不确定是否有一个 如果没有 我想我可以在行大小更改时生成一个事件 Thanks 您可以更改行的大小 但 GridSplitter 本身是一个 Thumb 因此有自己的事件 例如 Drag
  • 数据库索引:是好事、坏事还是浪费时间?

    这里通常建议添加索引作为性能问题的补救措施 我只讨论读取和查询 我们都知道索引会使写入速度变慢 多年来 我在 DB2 和 MSSQL 上多次尝试过这种补救措施 但结果总是令人失望 我的发现是 无论索引会让事情变得更好是多么 明显 事实证明查
  • glutPostRedisplay 不在循环内工作

    我试图让一个人在 y 轴上跳跃 所以我使用 2 秒的循环 第一秒它应该向下移动并弯曲膝盖 第二秒它应该向上移动 然后在起始位置完成 现在我刚刚开始让这个人在第一秒内跪下并弯曲膝盖 我还没有编写动画的其余部分 问题是 glutPostRedi
  • 带有反应导航的自定义图标 5

    我正在尝试将自定义图标与反应选项卡导航一起使用 但是 所有教程和文档 总是只涵盖通过 Ionicons 或 Materialdesign 实现图标 有没有办法实现我自己的图标 代码如下
  • 使用 const shared_ptr<> 的基于范围的 for 循环

    我有一个容器shared ptr lt gt 例如Avector
  • 如何将 DateTime 转换为自 1970 年以来的秒数?

    我正在尝试将 C DateTime 变量转换为 Unix 时间 即自 1970 年 1 月 1 日以来的秒数 看起来 DateTime 实际上是作为自 0001 年 1 月 1 日以来的 刻度 数来实现的 我目前的想法是从我的 DateTi
  • 使用虚假数据生成回形针图像上传 - Ruby on Rails Populator / Faker Gems

    我目前正在尝试用一堆假数据填充项目的开发数据库 以模拟数百篇文章 用户的外观和操作方式 我研究了不同的宝石来完成任务 例如 Factory Girl 但文档非常缺乏 我没有得到它 但最终使用了 Populator 和 Faker gems
  • php 登录curl 代码未按预期工作

    我正在尝试使用 php 中的curl 函数登录到特定页面 请检查下面的代码 我在 banggood com 连接我的电子邮件和密码 然后我想重定向到另一个私人页面 但它无法按预期工作 我没有收到任何错误 我被重定向到此页面 https ww
  • 如何将一个数表示为4个素数之和?

    这是问题所在 四个素数的和 http acm uva es p v101 10168 html 指出 输入的每一行包含一个整数 N N 输入示例 24 36 46 示例输出 3 11 3 73 7 13 1311 11 17 7 我第一眼就
  • 为什么更新的状态没有反映在事件侦听器中:React Native、Hooks

    我正在使用钩子来更新状态 在我的代码中 我有一个 AppState 事件侦听器 每当它触发时 我都会更新appState using 设置应用程序状态 但是事件监听器内的 appState 没有改变 但该值正在侦听器外部更新 谁能解释为什么
  • 快速会话未保存到 iPad

    我试图在用户登录时保存会话变量 这在计算机上有效 但是当我在电脑上尝试时iPad using Safari or Chrome它不会保存 这是我设置会话的地方 app set trust proxy 1 app use session se
  • 如何在 Eclipse 中使用 ssh 隧道设置 Subversion?

    我有一个远程服务器 在非标准 ssh 端口上托管我的 subversion 存储库 我想使用 Eclipse 的 subclipse 插件作为客户端来访问 SVN 存储库 我可以使用 svn specialssh 来访问存储库 其中spec
  • FBSessionDelegate 方法未触发

    我正在尝试实施最新的 Facebook Connect SDK 但遇到了一些麻烦 由于某种原因 委托回调FBSessionDelegate协议没有被解雇 我已按照 git Facebook 页面上的说明进行操作 并尝试模仿 Facebook