Как мне опубликовать что-то на Facebook с iOS с помощью последней версии Facebook SDK? - PullRequest
1 голос
/ 17 февраля 2012

Я пытаюсь опубликовать простой URL-адрес в Facebook из своего приложения для iOS.То, что я делаю, это:

facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:delegate];

, затем в какой-то момент

[facebook authorize:permissions];

, в этот момент мое приложение закрывается, и оно выводит меня на сафари и на страницу разрешений вместо того, чтобы представить мнеДиалог входа в систему (внутри моего приложения), где я вхожу, а затем нажимаю на сообщение или что-то в этом роде. Просто сообщение на мою стену.

Я почти уверен, что это простой вопрос, но так как я впервыепри интеграции с фейсбуком мне тяжело его настраивать, и документы не сильно помогают.

Любая помощь приветствуется!Спасибо!

1 Ответ

2 голосов
/ 17 февраля 2012

Если вам определенно необходимо удалить перенаправление в приложение Safari или Facebook, откройте класс FBConnect Facebook.h и найдите следующий метод:

- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
                    safariAuth:(BOOL)trySafariAuth {

там вам нужно заявить, что вы не хотите никуда перенаправляться, для этого установите эти два значения bool на NO

    - (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
                        safariAuth:(BOOL)trySafariAuth {
tryFBAppAuth = NO;
trySafariAuth = NO;

Далее, чтобы опубликовать что-то на стене, у вас есть два варианта. Одно не работает - стандартное диалоговое окно facebook, которое выведет клавиатуру за реальным веб-обзором, как только вы покажете UIAlertView ЛЮБОЕ в своем приложении, поэтому НЕ используйте его. Вместо этого используйте свой собственный пользовательский интерфейс с простой областью UITextView и кнопкой на розетке. Вот метод, который вам понадобится для публикации на стене из вашего пользовательского представления:

- (void)facebookPostToWallWithMessage:(NSString *)message {
  sharedInstance.facebookDelegate = delegate;
  NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                 message, @"message", // The status message
                                 nil];

  pushMessageRequest = [facebook requestWithGraphPath:@"me/feed"
                                            andParams:params
                                        andHttpMethod:@"POST"
                                          andDelegate:self];
}

А вот методы делегирования, которые вам понадобятся для того, чтобы сообщить пользователям, что они опубликовали обновление, или сообщить им, что оно вышло из строя:

- (void)request:(FBRequest *)request didLoad:(id)result {
  if (request == pushMessageRequest) {
    NSLog(@"message has been posted, inform delegate");
  }
}

- (void)request:(FBRequest *)request didFailWithError:(NSError *)error {
  if (request == pushMessageRequest) {
//failed to post message, inform delegate
    //[facebookDelegate facebookFailedToPostToWallWithMessage:error.localizedDescription];
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...