2012-12-28 20 views
-1

我想在Facebook上分享帖子,當我使用iOS 6,但在iOS 5和iOS 5.1時,它提供了登錄問題,當我登錄並去到已經授權頁面,然後按好按鈕,它把我拉回到登錄這樣,再而三地重複這兩個頁面 enter image description here如何解決登錄問題,同時在Facebook上分享帖子

當我按下行吧還給

enter image description here

case 1: // facebook 
     { 
      if(NSClassFromString(@"SLComposeViewController")) 
      { 
       SLComposeViewController *fbController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 
       SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){ 

        [fbController dismissViewControllerAnimated:YES completion:nil]; 

        switch(result){ 
         case SLComposeViewControllerResultCancelled: 
         default: 
         { 
          NSLog(@"Cancelled....."); 

         } 
          break; 
         case SLComposeViewControllerResultDone: 
         { 
          ALERT_VIEW(@"Successfully posted to facebook."); 
         } 
          break; 
        }}; 

       [fbController setInitialText:quotesss]; 
       [fbController setCompletionHandler:completionHandler]; 
       [self presentViewController:fbController animated:YES completion:nil]; 
      } 
      else 
      { 
       DEFacebookComposeViewControllerCompletionHandler completionHandler = ^(DEFacebookComposeViewControllerResult result) { 
        switch (result) { 
         case DEFacebookComposeViewControllerResultCancelled: 
          NSLog(@"Facebook Result: Cancelled"); 
          break; 
         case DEFacebookComposeViewControllerResultDone: 
          ALERT_VIEW(@"Successfully posted to facebook."); 
          break; 
        } 

        [self dismissViewControllerAnimated:YES completion:nil]; 
       }; 
       DEFacebookComposeViewController *facebookViewComposer = [[DEFacebookComposeViewController alloc] init]; 
       self.modalPresentationStyle = UIModalPresentationCurrentContext; 

       [facebookViewComposer setInitialText:quotesss]; 

       facebookViewComposer.completionHandler = completionHandler; 
       [self presentViewController:facebookViewComposer animated:YES completion:nil]; 
       [facebookViewComposer release]; 
      } 
      break; 
     } 
     case 2: // twitter 
     { 
      NSString *text = [NSString stringWithFormat:@"%@", quotesss ]; 
      if([text length] > 135) 
      { 
       text = [NSString stringWithFormat:@"%@%@", quotesss ,@"..."]; 
       text = [text substringToIndex:135]; 

      } 

      if(NSClassFromString(@"SLComposeViewController")) 
      { 
       SLComposeViewController *twitterController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
       SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){ 

        [twitterController dismissViewControllerAnimated:YES completion:nil]; 

        switch(result){ 
         case SLComposeViewControllerResultCancelled: 
         default: 
         { 
          NSLog(@"Cancelled....."); 

         } 
          break; 
         case SLComposeViewControllerResultDone: 
         { 
          ALERT_VIEW(@"Successfully posted to twitter."); 
         } 
          break; 
         }}; 

       [twitterController setInitialText:text]; 
       [twitterController setCompletionHandler:completionHandler]; 
       [self presentViewController:twitterController animated:YES completion:nil]; 
      } 

      else 
      { 
       DETweetComposeViewControllerCompletionHandler completionHandler = ^(DETweetComposeViewControllerResult result) { 
        switch (result) { 
         case DETweetComposeViewControllerResultCancelled: 
          NSLog(@"Twitter Result: Cancelled"); 
          break; 
         case DETweetComposeViewControllerResultDone: 

          ALERT_VIEW(@"Successfully posted to twitter."); 
          break; 
        } 
        [self dismissViewControllerAnimated:YES completion:nil]; 
       }; 

       DETweetComposeViewController *tcvc = [[[DETweetComposeViewController alloc] init] autorelease]; 
       self.modalPresentationStyle = UIModalPresentationCurrentContext; 
       [tcvc setInitialText:quotesss]; 
       tcvc.completionHandler = completionHandler; 

       [self presentViewController:tcvc animated:YES completion:nil]; 

      } 

      break; 
     } 
+0

檢查一下您是否將Facebook令牌保存在NSUserDefaults中。你正在使用哪個框架? – Sumanth

+0

什麼是我不知道的標記。你能指導我嗎? – NullData

+0

任何一個PLZ幫助?????? – NullData

回答

0

˚F ROM中的代碼,我發現,問題出在iOS 5中的Facebook這個代碼怎麼把不是SLCompose只有Twitter是可用,因此您的Facebook是由DEFaceBook

  DEFacebookComposeViewControllerCompletionHandler completionHandler = ^(DEFacebookComposeViewControllerResult result) { 
       switch (result) { 
        case DEFacebookComposeViewControllerResultCancelled: 
         NSLog(@"Facebook Result: Cancelled"); 
         break; 
        case DEFacebookComposeViewControllerResultDone: 
         ALERT_VIEW(@"Successfully posted to facebook."); 
         break; 
       } 

       [self dismissViewControllerAnimated:YES completion:nil]; 
      }; 
      DEFacebookComposeViewController *facebookViewComposer = [[DEFacebookComposeViewController alloc] init]; 
      self.modalPresentationStyle = UIModalPresentationCurrentContext; 

      [facebookViewComposer setInitialText:quotesss]; 

      facebookViewComposer.completionHandler = completionHandler; 
      [self presentViewController:facebookViewComposer animated:YES completion:nil]; 
      [facebookViewComposer release]; 
     } 

處理,所以還是你的appdelegate並檢查這個方法一個有效的令牌(url其中包含應用程序,令牌格式applicationURLSchema://"token")檢查它來不來這個方法 如果有必要保持破發點並辦理FBSession類,然後handleOpenURL方法並找到錯誤發生

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

// attempt to extract a token from the url 
return [FBSession.activeSession handleOpenURL:url]; 
}