2013-07-03 37 views
0

在我的應用程序中,我想在牆上發佈圖片,但我認爲我錯過了一些東西。我做了大量的研究並最終得到了該代碼。其實它有時工作,但通常當代碼運行,因爲沒有與publish_action權限的會話,第二部分的代碼工作,但問題是我總是在第二部分得到錯誤日誌,所以我不能繼續......你有任何想法,爲什麼我不能打開有發佈權限的活動會話?iphone開發:無法打開有發佈權限的活躍Facebook會話

if ([[FBSession activeSession]isOpen]) { 
     /* 
     * if the current session has no publish permission we need to reauthorize 
     */ 
     if ([[[FBSession activeSession]permissions]indexOfObject:@"publish_actions"] == NSNotFound) { 

      [[FBSession activeSession] requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_action"] defaultAudience:FBSessionDefaultAudienceOnlyMe 
                completionHandler:^(FBSession *session,NSError *error){ 
                 action(); 
                }]; 

     }else{ 
      [self publishStory]; 
     } 
    }else{ 
     /* 
     * open a new session with publish permission 
     */ 
     [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] 
              defaultAudience:FBSessionDefaultAudienceOnlyMe 
               allowLoginUI:YES 
             completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
              if (!error && status == FBSessionStateOpen) { 
               [self publishStory]; 
              }else{ 
               NSLog(@"error"); 
              } 
             }]; 
    } 

回答

0

在代碼的第一部分,當你要求新的發佈權限,你有 [NSArray arrayWithObject:@"publish_action"] ....

如果我不是沒有錯的話,我認爲這應該是[NSArray arrayWithObject:@"publish_actions"]

這裏是來自Facebook文檔代碼剪斷 https://developers.facebook.com/docs/technical-guides/iossdk/errors/

// Method that requests permissions needed to make the API call. 

    - (void)requestPermissionCallAPI { 

     [FBSession.activeSession 
      requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] 
         defaultAudience:FBSessionDefaultAudienceEveryone 
         completionHandler:^(FBSession *session, NSError *error) { 
         if (error) { 
          // Handle new permissions request errors 
          [self handleRequestPermissionError:error]; 
         } else { 
          // Make API call 
          ... 
         } 
     }]; 
    } 
+0

阱謝謝你的第一p藝術。我糾正了它,但我的主要問題是代碼的第一部分甚至沒有調用代碼總是在第二部分中查找,因爲這意味着我無法使用發佈權限打開活動會話 – death7eater

+0

正如我所瞭解的,會話永遠不會打開,因此它總是嘗試用openActiveSessionWithPublishPermissions打開會話,完成hander顯示錯誤?這是否發生在機器人模擬器和電話上?你有沒有在手機設置頁面檢查Facebook的權限。是否有可能該應用程序未被允許訪問此用戶的手機設置和/或Facebook網站上的Facebook? – Yan

相關問題