自分のアプリケーションと代理人のメソッドのFacebookログインを実装しようとしています - fbDidLogin:
/application: handleOpenURL:
/fbDidNotLogin:
が呼び出されていません。ここで私が使用しているコードです。どんな助けでも大歓迎です!Facebook iOSログイン - 代理人のメソッドが呼び出されていない
- (void)viewDidLoad
{
...
facebook = [[Facebook alloc] initWithAppId:kFacebookAppId];
}
-(IBAction) loginWithFacebook:(id)sender {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
NSArray* permissions = [[NSArray arrayWithObjects:
@"email", nil] retain];
[facebook authorize:permissions delegate:self];
}
}
#pragma mark - Facebook delegate
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [facebook handleOpenURL:url];
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
-(void) fbDidNotLogin:(BOOL)cancelled {
}
-(void) fbDidLogout {
}
私はまた、適切なエントリの下info.plist
ファイルにFacebookのアプリケーションIDを持っています。私はloginWithFacebook:
メソッドでブレークポイントを持っており、正常にヒットしました。 [facebook authorize:]
メソッドも呼び出されます。
ありがとう、
Teja。
FBSessionDelegateとして自分自身を設定したことを確認しましたか? – Idan
'[facebook autorize:permissions delegate:self]'がセッションデリゲートを設定すると思います。私は '[facebook setSessionDelegate:self]'を使って設定しようとしましたが、私はまだ同じ結果を持っています。 –