Objective-C
Facebook
Twitter
iOS

iOS6で追加されたSocial.frameworkの使い方入門

More than 5 years have passed since last update.

Social.frameworkはiOS6で追加されたFacebookやWeiboとの連携機能を開発者が利用するためのフレームワークです。
(Twitterとの連携機能もTwitter.frameworkだけでなく、Social.frameworkからも利用することが可能です。)

基本的な使い方は、iOS5で追加されたTwitter.frameworkと一緒ですがインスタンスの生成方法などが一部異なっています。以下は、フレームワークから提供されているUIを利用して、URLとコメントをFacebookに投稿する場合の例です。

Sample.m
- (void)postFacebookSample {
    SLComposeViewController *slComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    [slComposeViewController setInitialText:@"hogefuga"];
    [slComposeViewController addURL:[NSURL URLWithString:@"http://qiita.com"]];
    [self presentModalViewController:slComposeViewController animated:YES];
}

上記のコードを実行すると、こんな感じのUIが表示されます。
FacebookUI画像

URLやコメント以外に、画像を共有することも可能ですがFacebookへ投稿する場合、画像とURLを同時に設定すると画像が優先され、URLはコメントの一部として末尾に挿入されます。(画像をFacebook上のどのアルバムにアップロードするかは、ユーザーが自分で選択する事が出来ます)

インスタンス生成時に渡す引数は、Social.framework内のSLServiceTypes.hに定義されているので、こちらを参考にすることで各種サービスを切り替えることが出来ます。

Type
SOCIAL_EXTERN NSString *const SLServiceTypeTwitter;
SOCIAL_EXTERN NSString *const SLServiceTypeFacebook;
SOCIAL_EXTERN NSString *const SLServiceTypeSinaWeibo;

独自のUIを利用して、各種APIを利用したい場合はSLRequestを利用して、NSURLRequestを生成する事が出来ます…が、そこまでするならFacebookなんかはFacebookSDKを使った方が楽に済むかも知れません。