iOS-TwitterとFacebook


概要

TwitterはiOS 5.0に統合され、FacebookはiOS 6.0に統合されています。本チュートリアルでは、Appleが提供するクラスを利用して、iOS 5.0とiOS 6.0でTwitterとFacebookを導入する方法に焦点を当てます。

実例手順

1. シンプルなViewベースのアプリケーションを作成します

2. プロジェクトファイルを選択し、"targets(ターゲット)"を選び、"choose frameworks(フレームワークを選択)"でSocial.frameworkとAccounts.frameworkを追加します

3. facebookPost と twitterPost という2つのボタンを追加し、それらのために ibActions を作成します

4. ViewController.h を次のように更新します

#import <Social/Social.h>
#import <Accounts/Accounts.h>
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

-(IBAction)twitterPost:(id)sender;
-(IBAction)facebookPost:(id)sender;

@end

5. ViewController.m を次のように更新します

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(IBAction)facebookPost:(id)sender{
   
   SLComposeViewController *controller = [SLComposeViewController 
   composeViewControllerForServiceType:SLServiceTypeFacebook];
   SLComposeViewControllerCompletionHandler myBlock = 
   ^(SLComposeViewControllerResult result){
          if (result == SLComposeViewControllerResultCancelled)
          {                
            NSLog(@"Cancelled");                
          } 
          else                
          {
            NSLog(@"Done");
          }
          [controller dismissViewControllerAnimated:YES completion:nil];
        };
   controller.completionHandler =myBlock;        
   //Adding the Text to the facebook post value from iOS
   [controller setInitialText:@"My test post"];        
   //Adding the URL to the facebook post value from iOS
   [controller addURL:[NSURL URLWithString:@"http://www.test.com"]];        
   //Adding the Text to the facebook post value from iOS
   [self presentViewController:controller animated:YES completion:nil];    
}

-(IBAction)twitterPost:(id)sender{
    SLComposeViewController *tweetSheet = [SLComposeViewController 
    composeViewControllerForServiceType:SLServiceTypeTwitter];
    [tweetSheet setInitialText:@"My test tweet"];
    [self presentModalViewController:tweetSheet animated:YES];
}

@end

出力

アプリケーションを実行し、facebookPostをクリックすると、次のような出力が得られます

FBTwit_Output1

twitterPostをクリックすると、次のような出力が得られます

FBTwit_Output2

その他の拡張