Использование SLRequest в iOS 6 с Facebook
В настоящее время я пытаюсь использовать SLRequest для публикации статуса на Facebook. Вот код, который у меня есть:
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSLog(@"0");
[accountStore requestAccessToAccountsWithType:accountType options:@{ACFacebookAppIdKey : @"00000000000", ACFacebookPermissionsKey : @"publish_stream", ACFacebookAudienceKey : ACFacebookAudienceFriends} completion:^(BOOL granted, NSError *error) {
if(granted) {
NSLog(@"1");
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
NSLog(@"2");
if ([accountsArray count] > 0) {
NSLog(@"3");
ACAccount *facebookAccount = [accountsArray objectAtIndex:0];
NSLog(@"4");
SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:[NSURL URLWithString:@"https://graph.facebook.com/me/feed"]
parameters:[NSDictionary dictionaryWithObject:post forKey:@"message"]];
NSLog(@"5");
[facebookRequest setAccount:facebookAccount];
NSLog(@"6");
[facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) {
NSLog(@"%@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
}];
}
}
}];
Однако код, который я имею, не хочет пройти if(granted){
но я не могу сказать, почему то, что я сделал, не работает. Любая помощь будет оценена!
2 ответа
Решение
В моем случае, чтобы решить эту проблему, я регистрирую Bundle ID в свойствах моего приложения на Facebook.
Отредактируйте свое приложение на Facebook и найдите "Выберите, как ваше приложение интегрируется с Facebook" и зарегистрируйте Bundle ID вашего проекта в "iOS Bundle ID" в "Native iOS App".
Если не ваш случай, попробуйте прочитать сообщение об ошибке:
if(granted) {
...
}
else {
NSLog([NSString stringWithFormat:@"%@", error.localizedDescription]);
}
Если error.code == 6, то это сообщение об ошибке, которое появится, если пользователь не вошел в Facebook из приложения Настройки.