簡體   English   中英

iOS上的iPhone5 / ios6.1.3和Facebook SDK 3.2.1-設備上的com.facebook.sdk錯誤2

[英]Iphone5 / ios6.1.3 and Facebook SDK 3.2.1 on iOS - com.facebook.sdk Error 2 on device

當我運行LoginUI並單擊“取消”按鈕時,嘗試登錄而不是無法再次登錄

我嘗試在iOS上使用Iphone4s / ios6.1.3和Facebook SDK 3.2.1,而不是取消登錄才能再次登錄。

iphone5發生了什么:

[FBSession.activeSession closeAndClearTokenInformation]; 不行

這是我的代碼:

 - (void)sessionStateChanged:(FBSession *)session
                      state:(FBSessionState) state
                      error:(NSError *)error
    {
        switch (state) {
            case FBSessionStateOpen:
                if (!error) {
                }

        break;
    case FBSessionStateClosed:
    case FBSessionStateClosedLoginFailed:
        [FBSession.activeSession closeAndClearTokenInformation];

        break;
    default:
        break;
}

[[NSNotificationCenter defaultCenter]
 postNotificationName:FBSessionStateChangedNotification
 object:session];

if (error) {
    UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:@"Error"
                              message:error.localizedDescription
                              delegate:nil
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
    [alertView show];
    }
}

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
    return [FBSession openActiveSessionWithReadPermissions:nil
                                              allowLoginUI:allowLoginUI
                                         completionHandler:^(FBSession *session,
                                                             FBSessionState state,
                                                             NSError *error) {
                                             [self sessionStateChanged:session
                                                                 state:state
                                                                 error:error];
                                         }];
}

- (void) closeSession {
    [FBSession.activeSession closeAndClearTokenInformation];
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

    return [FBSession.activeSession handleOpenURL:url];
}


- (void)sessionStateChanged:(NSNotification*)notification {

    if (FBSession.activeSession.isOpen) {

        if (nil == self.facebook) {
            self.facebook = [[Facebook alloc]
                             initWithAppId:FBSession.activeSession.appID
                             andDelegate:nil];

            self.facebook.accessToken = FBSession.activeSession.accessTokenData.accessToken;
            self.facebook.expirationDate = FBSession.activeSession.accessTokenData.expirationDate;
        }
    } else {
        self.facebook = nil;
    }
}

- (void) Loginfb {
    AppDelegate *appDelegate =
    [[UIApplication sharedApplication] delegate];

    if (FBSession.activeSession.isOpen) {
    } else {   
        [appDelegate openSessionWithAllowLoginUI:YES];
    }

我該如何解決? Thanks in advance.

如果您使用系統Facebook帳戶登錄並且未使用快速應用程序切換登錄,則在用戶首次拒絕“讀取”權限時,您的應用程序在手機的Facebook隱私設置中的訪問權限設置為關閉。

從那時起,您將無法再使用SDK授予訪問權限。 相反,用戶必須手動進入手機的“設置”-“隱私”-“ Facebook”並啟用對您的應用程序的訪問。

這不適用於“發布”權限。 即使用戶第一次拒絕“發布”權限,您也可以使用SDK繼續請求“發布”權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM