gpt4 book ai didi

iphone - 未调用 fbDidLogin - iOS

转载 作者:技术小花猫 更新时间:2023-10-29 10:55:40 26 4
gpt4 key购买 nike

我正尝试在我的 iOS 应用程序中为一个学校项目实现 facebook,但是我遇到了一些问题,即未调用 fbDidLogin 方法。

我创建了一个名为 FBFetcher 的示例对象:

    @interface FBFetcher : NSObject <FBDialogDelegate,FBSessionDelegate,FBRequestDelegate> {
Facebook *facebook;
FBFetcher *facebookFetcher;
}
-(void)login;
@property (retain) Facebook *facebook;
@property (retain) FBFetcher *facebookFetcher;
@end

在 FBFetcher.m 中:

    @implementation FBFetcher 
@synthesize facebookFetcher,facebook;


-(void)login{
facebook = [[Facebook alloc] initWithAppId:@"...."];
NSArray *permissions = [[NSArray arrayWithObjects: @"offline_access",@"user_about_me", nil] retain];
[facebook authorize:permissions delegate:self];

}

-(void)fbDidLogin {
NSLog(@"Erfolgreich eingeloggt....");
}

@end

在我的应用委托(delegate)中:

    -  (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 

return [[[controller facebookFetcher] facebook] handleOpenURL:url];
}

我有一个单独的 View Controller ,其中 n 个 Action 绑定(bind)到 UIButton:

facebookFetcher = [[FBFetcher alloc] init];
[facebookFetcher login];

我可以访问登录和授权页面,但是永远不会调用方法 fbDidLogin。有什么建议么?

最佳答案

该方法永远不会被调用,因为当您授权时,您是在 Safari 中进行的。顺便说一句,我认为这是 Facebook SDK 的错误,要解决这个问题,请打开 facebook.m 文件并找到以下行:

[self authorizeWithFBAppAuth:YES safariAuth:YES];

并将其更改为

[self authorizeWithFBAppAuth:NO safariAuth:NO];

这样您将永远不会被发送到 Safari,但一切都将在对话框中完成。

只要测试一下,您就会看到 fbDidLogin 方法将被调用。

希望对你有帮助

关于iphone - 未调用 fbDidLogin - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5783782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com