2014-03-01 36 views
-4

我想連接Facebook和Twitter帳戶與我的iOS應用程序。我正在尋找代碼來檢查帳戶是否存在於設置中。如果存在,則需要使用同一帳戶進行登錄,如果沒有,則要求用戶在設置中添加帳戶。Facebook和Twitter在iOS中連接

我嘗試了幾件事情,但真的不工作。如果有人需要我的代碼,那麼讓我知道我會將它發佈到pastebin上。

+0

你可以在這裏發佈你的相關代碼,並說明你面臨的問題。 –

回答

1

加入社會框架,以你的項目,並在你的類進口

#import <Social/Social.h> 

對於Facebook而言

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

    [controller addImage:UIImage]; 
controller.completionHandler = ^(SLComposeViewControllerResult result) { 
    if(result == SLComposeViewControllerResultDone) { 

    } 
    [self dismissViewControllerAnimated:YES completion:nil]; 

}; 
[self presentViewController:controller animated:YES completion:Nil]; 
} 
else 
{ 

//Show Alert: No Facebook Account in Settings Page 

} 

Twitter的

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) { 

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

    [controller addUrl:NSURL]; 
controller.completionHandler = ^(SLComposeViewControllerResult result) { 
    if(result == SLComposeViewControllerResultDone) { 

    } 
    [self dismissViewControllerAnimated:YES completion:nil]; 

}; 
[self presentViewController:controller animated:YES completion:Nil]; 
} 
else 
{ 

//Show Alert: No Twitter Account in Settings Page 

} 
0

要檢查,如果你可以與Facebook或Twitter分享,使用方法:
[SLComposeViewController isAvailableForServiceType:serviceType]
哪裏的serviceType可以是任何SLServiceTypes如,SLServiceTypeFacebookSLServiceTypeTwitter

這基本上都會檢查他們是否有本地連接這些服務在他們的設置。我不認爲你可以要求用戶在他們的設置中添加它。大多數情況下,如果沒有UIActionSheet這樣的特定分享選項,它就不會顯示出來。

我的猜測是,您可以使用SLComposeViewController來檢查連接的帳戶,如果沒有連接,請使用相應的SDK將他們的帳戶與您的iOS應用連接。

3

在你的項目和進口添加Twitter和社會框架中的類文件一樣

#import <Social/Social.h> #import <Twitter/Twitter.h>

For Facebook

如果([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]){

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

    NSData *aImgdata=[[NSUserDefaults standardUserDefaults]objectForKey:@"EditImage"]; 
    if (aImgdata) { 
     UIImage *aImage=[UIImage imageWithData:aImgdata]; 
     [controller addImage:aImage]; 
    } 

    controller.completionHandler = ^(SLComposeViewControllerResult result) { 
     if(result == SLComposeViewControllerResultDone) { 

     } 
     [self dismissViewControllerAnimated:YES completion:nil]; 

    }; 
    [self presentViewController:controller animated:YES completion:Nil]; 
} 
else 
{ 

    [self ShowAlertView: @"You can't share on facebook right now, make sure your device has an internet connection and you have at least one Facebook account setup"]; 

} 

For Twitter

如果([TWTweetComposeViewController canSendTweet]){

 { 

      TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init]; 

      NSData *aImgdata=[[NSUserDefaults standardUserDefaults]objectForKey:@"EditImage"]; 
      if (aImgdata) { 
       UIImage *aImage=[UIImage imageWithData:aImgdata]; 
       [tweetViewController addImage:aImage]; 
      } 

      tweetViewController.completionHandler = ^(TWTweetComposeViewControllerResult result) { 
       if(result == TWTweetComposeViewControllerResultDone) { 

        [self ShowAlertView: @"Tweet Has been Shared"]; 

       } 
       [[AppDelegate sharedInstance]showActivity:NO]; 
       [self dismissViewControllerAnimated:YES completion:nil]; 
      }; 

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

     } 

    } else { 

     [self ShowAlertView: @"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account setup"]; 
    } 
+0

我想在切換按鈕上實現它,就像我已經展示了一個切換按鈕,用於連接Facebook並與Twitter連接,是否可以實現它?如果有帳戶,那麼用戶將被重定向到我的Facebook應用程序/ Twitter應用程序,並具有相同的詳細信息。 – user3367347