Я пытаюсь выполнить простую процедуру проводки:
- (IBAction)directPostClick:(id)sender {
self.statusLabel.text = @"Waiting for authorization...";
if (self.accountStore == nil) {
self.accountStore = [[ACAccountStore alloc] init];
}
ACAccountType * facebookAccountType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSArray * permissions = @[@"publish_stream", @"user_checkins", @"publish_checkins", @"user_likes", @"user_videos"];
NSDictionary * dict = @{ACFacebookAppIdKey : @"My app id here", ACFacebookPermissionsKey : permissions, ACFacebookAudienceKey : ACFacebookAudienceOnlyMe};
[self.accountStore requestAccessToAccountsWithType:facebookAccountType options:dict completion:^(BOOL granted, NSError *error) {
__block NSString * statusText = nil;
if (granted) {
statusText = @"Logged in";
NSArray * accounts = [self.accountStore accountsWithAccountType:facebookAccountType];
self.facebookAccount = [accounts lastObject];
NSLog(@"account is: %@", self.facebookAccount);
self.statusLabel.text = statusText;
[self postToFeed];
}
else {
self.statusLabel.text = @"Login failed";
NSLog(@"error is: %@", error);
}
}];
}
Редакция: Проблема в том, что когда я нажимаю кнопку alertView OK (не разрешаю, тоже не работает) ничего не происходит! - Это поведение теперь изменилось с этим iOS 6 Процедура отправки Facebook заканчивается с "remote_app_id" не соответствует сохраненному идентификатору " Поэтому вместо того, чтобы просто "ничего не случилось", у меня есть ошибка "Сервер Facebook не смог выполнить этот запрос доступа: remote_app_id не соответствует сохраненному идентификатору"
Итак, кажется, что обработчик click view alert ничего не делает, мое завершениеHandler никогда не вызывается. У меня уже есть аналогичная проблема: iOS 6 Социальная интеграция - перейдите в раздел настроек И я думаю, что это та же проблема. Что вы, ребята, думаете об этом? Постскриптум Я работаю на MAC mini, OS X 10.8.1 с последним xcode 4.5 (4G182) и с помощью симулятора iPhone 6.0.
ДОБАВЛЕНО:
По запросу Бьорна, добавляющего метод postToFeed
, хотя он никогда не вызывается:
- (void)postToFeed {
NSDictionary * parameters = @{@"message" : @"Hello world!"};
NSURL * feedUrl = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"];
SLRequest * request = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:feedUrl parameters:parameters];
request.account = self.facebookAccount;
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
self.statusLabel.text = @"Posted!";
});
}];
}