gpt4 book ai didi

ios - Facebook api ios-sdk,代表不工作,未调用 fbDidLogin

转载 作者:可可西里 更新时间:2023-11-01 05:39:14 26 4
gpt4 key购买 nike

我对最新的 iOS SDK 有疑问。我成功登录,应用程序返回,但没有调用 fbDidLogin 等委托(delegate)方法。

如果在没有任何 Controller 的情况下仅在一个委托(delegate)文件中尝试所有操作并使其正常工作。但如果我有多个 Controller ,它就不再工作了/

我用自己写的类FacebookFetchter来处理Facebook。

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

@interface FacebookFetchter : NSObject <FBDialogDelegate,FBSessionDelegate,FBRequestDelegate> {
Facebook *facebook;
FacebookFetchter *facebookFetcher; }

@property (nonatomic, retain) IBOutlet UIWindow *window; @property (retain) Facebook *facebook; @property (retain) FacebookFetchter
*facebookFetcher; @end


    //  FacebookFetchter.m
#import "FacebookFetchter.h"

@implementation FacebookFetchter @synthesize facebookFetcher,facebook;

-(void)login{
NSLog(@"facebook login...");
facebook = [[Facebook alloc] initWithAppId:@"..."]; //took the id out
NSArray *permissions = [[NSArray arrayWithObjects:
@"read_stream", @"offline_access", @"user_photos", @"user_photo_video_tags" , @"friends_photo_video_tags", @"friends_photos",@"friends_about_me",@"user_about_me",@"manage_friendlists",@"read_friendlists",@"user_birthday",@"friends_birthday", nil] retain];

[facebook authorize:permissions delegate:self];

}

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

@end

在我的代表中我实现了这个并且我还使用 fbapp_id url scheme 设置了 plist

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
NSLog(@"AppDelegate handleOpenURL");
return [[[settings facebookFetcher] facebookFetcher] handleOpenURL:url];
}

设置是我的 View Controller :

//settings.h @interface Settings : UIViewController {
FacebookFetchter *facebookFetcher;
//Facebook *facebook; }

@property (retain) FacebookFetchter
*facebookFetcher;
- (IBAction)sync; @end

//settings.m @synthesize facebookFetcher;

//within this action the facebook login is called
- (IBAction)sync{
NSLog(@"sync...");
facebookFetcher = [[FacebookFetchter alloc] init];
[facebookFetcher login]; }

有什么建议吗??

谢谢!

最佳答案

我刚遇到这个问题,相信我可能已经找到了您的解决方案。当您在 Facebook 上创建应用程序时,您必须编辑您的应用程序设置以允许本地 iOS 应用程序。选择的 ios 包 ID 必须与您正在创建的应用程序中的包 ID 完全匹配。 Facebook 声明他们会在授权您的应用程序之前检查这一点。有趣的是,如果您从设备中删除 facebook 应用程序,然后尝试使用网络浏览器对其进行身份验证,并且似乎完全绕过此“安全”。 Facebook 不会发回错误消息,因此追踪起来很有趣。我想我会把这个答案放在那里,希望能为 future 的开发者省去一些麻烦。我希望这会有所帮助。

关于ios - Facebook api ios-sdk,代表不工作,未调用 fbDidLogin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5333755/

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