FBConnect / Graph API странное поведение - PullRequest
0 голосов
/ 29 ноября 2011

Итак, после долгого времени отладки происходит то, что происходит. (Использование API Facebooks Graph)

Когда я нажимаю кнопку «Публикация в Facebook», когда приложение «Фейсбук» не установлено, вход в систему перенаправляется в Safari, входит в систему и запрашивает разрешение для моего приложения, а затем возвращается обратно в мое приложение.

Если у меня установлено официальное приложение facebook, приложение перенаправляется в приложение facebook и не отображает диалоговое окно перед возвратом в мое приложение с неизвестной ошибкой.

В основном, почему функция публикации не работает, когда аутентификация проходит через приложение, а не через браузер?

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Перейдите в файл Facebook.m и прокомментируйте следующие строки в - (void) authorizeWithFBAppAuth: (BOOL) tryFBAppAuth safariAuth: (BOOL) trySafariAuth метод,

       - (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
                            safariAuth:(BOOL)trySafariAuth {
         //some line of code for initial setup

    //Comment these lines
          /*UIDevice *device = [UIDevice currentDevice];
            if ([device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported]) {
                if (tryFBAppAuth) {
                    NSString *fbAppUrl = [FBRequest serializeURL:kFBAppAuthURL params:params];
                    didOpenOtherApp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:fbAppUrl]];
                }*/
   //code to open the facebook login page

}

ПочемуВы хотите сделать средства, изначально было настроено открыть Facebook в случае наличия учетных данных

0 голосов
/ 29 ноября 2011

Используйте Facebook ios SDK. Это будет нормально работать.

В файле .h

#import "Facebook.h"

Facebook *facebook;

В файле .m

  NSArray * permissions = [NSArray arrayWithObjects:
                                 //@"publish_stream",
                                 @"offline_access",
                                 nil];
        [facebook authorize:@"APPID" permissions:permissions delegate:self];



- (void)fbDidLogin {
    //isLoggedIn = YES;
    [self hideActivityLabel];
    [[NSUserDefaults standardUserDefaults] setObject:facebook.accessToken forKey:@"access_token"];
    [[NSUserDefaults standardUserDefaults] setObject:facebook.expirationDate forKey:@"exp_date"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    NSLog(@"login token:");     
    NSLog(facebook.accessToken);

}

- (void)fbDidNotLogin:(BOOL)cancelled {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...