Проблема API графа Facebook с iOS SDK - PullRequest
0 голосов
/ 20 июля 2011

У меня проблема с API графа Facebook, а точнее с iOS SDK. Раньше мой код работал правильно, но теперь я получаю это описание ошибки, когда пытаюсь его использовать (чтобы получить личный канал, канал друзей, список друзей, ...):

Err details: Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x7113b80 {error=<CFBasicHash 0x7113910 [0x176e400]>{type = mutable dict, count = 2,
entries =>
    2 : <CFString 0x7121e60 [0x176e400]>{contents = "type"} = <CFString 0x7113a20 [0x176e400]>{contents = "OAuthException"}
    3 : <CFString 0x7113b40 [0x176e400]>{contents = "message"} = <CFString 0x7113a00 [0x176e400]>{contents = "An access token is required to request this resource."}
}
}

Кто-нибудь имел бы представление о том, откуда он может взяться?

Вот и мой исходный код:

facebook = [[Facebook alloc] initWithAppId:@"00000000000000"];
    NSArray *permissions =  [[NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil] retain];
    [facebook authorize:permissions delegate:self];
    [facebook requestWithGraphPath:@"1342568689/feed" andDelegate:self];

Ответы [ 2 ]

0 голосов
/ 04 мая 2012

Кроме того, offline_access удаляется, они предлагают проверить приложение init, чтобы расширить документацию токена, но фрагмент здесь:

-(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt { NSLog(@"token extended"); [self storeAuthData:accessToken expiresAt:expiresAt]; }

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

Ну, я определенно обнаружил, что SDK для Facebook немного хитрый, но вот пара вещей, которые я вижу, которые, надеюсь, помогут.

Во-первых, я думаю, что вы могли неправильно скопировать несколько методов при вводе кода, сопровождающего ваш вопрос.Назначение объекта «facebook» - это место, где установлен делегат, а метод «authorize» принимает только NSMutableDictionary параметров.Для ясности код должен выглядеть следующим образом:

facebook = [[Facebook alloc] initWithAppId:@"00000000000000" andDelegate:self];
NSArray *permissions =  [[NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil] retain];
[facebook authorize:permissions];
[facebook requestWithGraphPath:@"1342568689/feed" andDelegate:self];

Кроме этого, единственная реальная проблема заключается в том, что вы вызываете API графа до того, как приложение успело полностью авторизоваться.Все эти вызовы выполняются асинхронно, так как основной поток переходит к вашему requestWithGraphPath:andDelegate вызову до того, как процесс авторизации фактически вернет действительный токен доступа.Вы можете переместить этот вызов или любой другой, подобный ему, в обработчик кнопки onClick или для более прямого тестирования в метод делегирования сеанса Facebook fbDidLogin.

Надеюсь, это поможет!

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