2015-05-27 4 views
2

Я использую facebook sdk в своем приложении iOS для входа в систему и обмена ею.У меня есть ошибка «ErrorReauthorizeFailedReasonSessionClosed» с iOS Facebook SDK

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

Ниже приведен код, запрашивающий разрешение публикации.

// Request publish_actions 
[FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] 
    defaultAudience:FBSessionDefaultAudienceFriends 
    completionHandler:^(FBSession *session, NSError *error) { 
     if (!error) { 
      if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound) { 
      // Permission not granted, tell the user we will not publish 
      } else { 
      // Permission granted 
      } 
     } else { 
      NSLog(@"DEBUG: error = %@", error); 
      // There was an error, handle it 
      // See https://developers.facebook.com/docs/ios/errors/ 
     } 
}]; 

Сообщение об ошибке, как следующие,

Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. com.facebook.sdk:ErrorReauthorizeFailedReasonSessionClosed" 
 
UserInfo=0xXXXXXXXXX { 
 
    com.facebook.sdk:ErrorLoginFailedReason= 
 
     com.facebook.sdk:ErrorReauthorizeFailedReasonSessionClosed, 
 
    NSLocalizedFailureReason= 
 
     com.facebook.sdk:ErrorReauthorizeFailedReasonSessionClosed, 
 
     com.facebook.sdk:ErrorSessionKey= ... > 
 
}

Если кто-нибудь знает об этом, пожалуйста, помогите мне.

** Facebook SDK версии 3,18 и publish_actions элемент уже утвержден в developer.facebook.com

ответ

0

Вы можете использовать FBSDKAccessToken

if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) { 

      [self doShare]; 
     } else { 
      FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
      [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
       if (error) { 
        // Process error 
       } else if (result.isCancelled) { 
        // Handle cancellations 
       } else { 
        // If you ask for multiple permissions at once, you 
        // should check if specific permissions missing 
        if ([result.grantedPermissions containsObject:@"publish_actions"]) { 
         // Do work 

         [self doShare]; 

        } 
       } 
      }]; 
     } 

где doShare

- (void) doShare {

NSString *url = [NSString stringWithFormat:@"http://example.com/locations/%d",1]; 
NSDictionary *properties = @{ 

          @"your action" :url 
          }; 
[[[FBSDKGraphRequest alloc] 
    initWithGraphPath:@"me/example-staging:something" 
    parameters: properties 
    HTTPMethod:@"POST"] 
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
    if (!error) { 
     // NSLog(@"Post id:%@", result[@"id"]); 

    } 
}]; 
+0

- FBSDKAccessToken Facebook SDK 4.x версия? Шахта - 3,18. –

+0

Да, это 4.x :) и u должен использовать его проще – Omarj

+0

@MasterHong сделал u решит вашу проблему или что? дайте мне знать, если вам все еще нужна помощь? – Omarj

 Смежные вопросы

  • Нет связанных вопросов^_^