[iOS 6] social frameworkをつかってFacebookとTwitterへの投稿ボタンを作ってみる

このエントリーをはてなブックマークに追加
はてなブックマーク - [iOS 6] social frameworkをつかってFacebookとTwitterへの投稿ボタンを作ってみる
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed
[`grow` not found]

iOS5 で Twitter.framework が登場しましたが、iOS6 からその機能が拡張され、Facebook や Weibo(中国版Twitterといわれる”微博”)へも対応した Social.framework へと更新されます。

今回はこのSocial.frameworkを使ってFacebookとTwitterへの投稿ボタンを作ってみましょう。

とりあえずプロジェクトをSingle View Applicationで作っています。

iOS6SocialFramework1

まずはTARGETS→Build Phases→Link Binary With LibrariesのプラスボタンをクリックしてSocial.frameworkを追加。

IOS6SocialFramework2

TestSFViewController.hにimportしておきます。

IOS6SocialFramework31、

画面のView上にUIButtonを置いて「FB」とでも付けます。
「FB」ボタンをcontrol+ドラッグでViewController.hファイルに引っ張ったら

IOS6SocialFramework5

Connection:Action
Name:myFbBtn
Type:UIButton

としてConnect。
IOS6SocialFramework6

できたら、TestSFViewController.mファイルに作られた
– (IBAction)myFbBtn:(UIButton *)sender

の中に以下の処理を書きます


- (IBAction)myFbBtn:(UIButton *)sender {

SLComposeViewController *facebookPostVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

[facebookPostVC setInitialText:@"facebook投稿テスト"];
[facebookPostVC addImage:[UIImage imageNamed:@"EUI.jpg"]];

[self presentViewController:facebookPostVC animated:YES completion:nil];
}

IOS6SocialFramework7

これでRUNしてみると、

IOS6SocialFramework8

おお〜っ。

Facebook Accountの認証ができてないアラートが出てます。一度iPhoneシミュレータのホームに行ってSettingから認証をすればもう使えますよ。

Twitterも同様に、ViewにUIButtonを置いてViewController.hファイルにつなげます。

そして同じように処理を書き込んでやれば


- (IBAction)myTwBtn:(UIButton *)sender {

SLComposeViewController *twitterPostVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

[twitterPostVC setInitialText:@"twitter投稿テスト"];
[twitterPostVC addImage:[UIImage imageNamed:@"EUI.jpg"]];

[self presentViewController:twitterPostVC animated:YES completion:nil];
}

IOS6SocialFramework9

かんたん!

IOS6SocialFramework10

EUIでは初心者向けiPhone開発セミナーを開催しております。
くわしくはこちらへ!

関連している記事:


Copyright(c) 2010 EUI All Rights Reserved.