ios facebook api не запускается fbLogin - PullRequest
0 голосов
/ 08 марта 2012

мне нужно использовать API Facebook: в appdelegate.m у меня есть этот код:

// Initialize Facebook
facebook = [[Facebook alloc] initWithAppId:@"MY_TOKEN" andDelegate:self];

// Check and retrieve authorization information
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}

после, в другом виде у меня это:

AppDelegate* dlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSArray *permissions = [[NSArray alloc] initWithObjects:@"offline_access", nil];

if (![[dlg facebook] isSessionValid]) {
    [[dlg facebook] authorize:permissions];
}

и работает нормально: вызовите safari с авторизацией для использования моего приложения, я нажимаю Ok для авторизации и мое приложение вызывается снова ... мое приложение визуализирует последний вид перед авторизацией, но событие

- (void)fbDidLogin
{
    NSLog(@"fbDidLogin");
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
    [defaults synchronize];
}

в AppDelegate.m (мой appdelegate имеет FBSessionDelegate ) не запускается (также другие события FBSessionDelegate , такие как fbDidNotLogin не запускаются ...

где моя ошибка? заранее спасибо

1 Ответ

2 голосов
/ 08 марта 2012

Я думаю, что вы забыли об этих двух методах и, возможно, забыли добавить идентификатор приложения Facebook для типов URL в информационном файле. для более подробной информации
// Поддержка до 4.2

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

// Для поддержки 4.2+

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
    sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [facebook handleOpenURL:url]; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...