Xcode 4.5の新しいフレームワークを使用してiOS 6でステータスメッセージをFacebookに投稿する方法を知りたい。ありがとう! :)ACAccountStoreクラスを使用してObjective-CのiOS 6でFacebookに投稿する方法
答えて
メッセージを投稿するのは簡単です。それはTwitterフレームワークとほとんど同じです。
まずあなたがフレームワークをインポートする必要があります。社会と自分の.hファイルで
#import <Social/Social.h>
#import <Accounts/Accounts.h>
アカウント:このコードを
SLComposeViewController *mySLComposerSheet;
は、あなたの.mファイルでのアクションの内側に含まれています
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) //check if Facebook Account is linked
{
mySLComposerSheet = [[SLComposeViewController alloc] init]; //initiate the Social Controller
mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; //Tell him with what social platform to use it, e.g. facebook or twitter
[mySLComposerSheet setInitialText:[NSString stringWithFormat:@"Test",mySLComposerSheet.serviceType]]; //the message you want to post
[mySLComposerSheet addImage:yourimage]; //an image you could post
//for more instance methods, go here: https://developer.apple.com/documentation/social/slcomposeviewcontroller#//apple_ref/doc/uid/TP40012205
[self presentViewController:mySLComposerSheet animated:YES completion:nil];
}
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
NSString *output;
switch (result) {
case SLComposeViewControllerResultCancelled:
output = @"Action Cancelled";
break;
case SLComposeViewControllerResultDone:
output = @"Post Successful";
break;
default:
break;
} //check if everything worked properly. Give out a message on the state.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
}];
@Blade thans。しかし、私は "TWRequest"のようなアクションシートなしでメッセージを共有したいので、Facebookのプロセスは何ですか? – Hitarth
@Blade Grt suggetion。その作業がいいですが、私は2つのポップアップを取得しているのと同じメッセージを返すときに1つのクエリを持っています。 1.投稿は成功しました。2. Facebookへの接続が失敗したため投稿を送信できません。私はただ1つのポップアップがほしいのでユーザーはアイデアを得ます。この2人のポップアップユーザーが成功したかどうかを混乱させてしまいます。あなたが何か考えているなら私に示唆してください。 – Hitarth
@Bladeは「iOS経由でリンクを共有する」を「MyAppName経由でリンクを共有する」に変更できますか? – Hitarth
投稿が成功した場合にアラートを受信したい場合はどうすればよいですか。ユーザーが投稿をキャンセルしたときは何も表示されません。
残念ながらこれはTwitterでは正しく機能しません... TweetSheetをもう終了しません。ここに私のコードです:
if(NSClassFromString(@"SLComposeViewController") != nil)
{
mySLComposerSheet = [[SLComposeViewController alloc] init]; //initiate the Social Controller
mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; //Tell him with what social plattform to use it, e.g. facebook or twitter
[mySLComposerSheet setInitialText:[NSString stringWithFormat:story.title,mySLComposerSheet.serviceType]]; //the message you want to post
[mySLComposerSheet addURL:[NSURL URLWithString:story.link]];
//for more instance methodes, go here:https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Reference/SLComposeViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40012205
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
NSString *output;
switch (result) {
case SLComposeViewControllerResultCancelled:
output = NSLocalizedStringFromTable(@"As it seems you didn't want to post to Twitter", @"ATLocalizable", @"");
break;
case SLComposeViewControllerResultDone:
output = NSLocalizedStringFromTable(@"You successfully posted to Twitter", @"ATLocalizable", @"");
break;
default:
break;
} //check if everything worked properly. Give out a message on the state.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Twitter" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
}];
[self presentViewController:mySLComposerSheet animated:YES completion:nil];
[OK]をみんな、私はオリジナルのポストを微調整し、iOSの6/7で動作します。 Facebookのサービスタイプ、アラートタイトル、メッセージの変更楽しい!
- (IBAction)tweetMessage:(id)sender {
if(![SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) //check if Facebook Account is linked
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Unable to Tweet!" message:@"Please login to Twitter in your device settings." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
return;
}
//self.mySLComposerSheet = [[SLComposeViewController alloc] init]; //initiate the Social Controller
self.mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[self.mySLComposerSheet setInitialText:[NSString stringWithFormat:@"I found this Thing, check it out at this Place:\n %@ \n", [self someplace]]];
[self.mySLComposerSheet addImage:self.photos.firstObject];
[self presentViewController:self.mySLComposerSheet animated:YES completion:nil];
//}
[self.mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
NSString *output;
switch (result) {
case SLComposeViewControllerResultCancelled:
output = @"Action Cancelled";
break;
case SLComposeViewControllerResultDone:
output = @"Post Successfull";
break;
default:
break;
} //check if everything worked properly. Give out a message on the state.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Twitter" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
}];
}
これは私のアプリで実際に使用する方法です。より滑らかになり、コントローラがハードワークを行うことができます。
- (IBAction)postToFacebook:(id)sender {
if(![SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
NSLog(@"log output of your choice here");
}
// Facebook may not be available but the SLComposeViewController will handle the error for us.
self.mySLComposerSheet = [[SLComposeViewController alloc] init];
self.mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[self.mySLComposerSheet setInitialText:[NSString stringWithFormat:@"I found this Thing, check it out at SomeWhere:\n %@ \n", [self someURLString]]];
[self.mySLComposerSheet addImage:self.photos.firstObject]; //an image you could post
[self presentViewController:self.mySLComposerSheet animated:YES completion:nil];
[self.mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
NSString *output;
switch (result) {
case SLComposeViewControllerResultCancelled:
output = @"Action Cancelled";
break;
case SLComposeViewControllerResultDone:
output = @"Post Successfull";
break;
default:
break;
}
if (![output isEqualToString:@"Action Cancelled"]) {
// Only alert if the post was a success. Or not! Up to you.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
}
}];
}
- (IBAction)btn_facebook:(id)sender {
SLComposeViewController *facebookcomposer =
[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[facebookcomposer setInitialText:@"This is just a test"];
[facebookcomposer addURL:[NSURL URLWithString:@"http://www.google.com"]];
[facebookcomposer addImage:[UIImage imageNamed:@"images.jpg"]];
[self presentViewController:facebookcomposer animated:YES completion:nil];
[facebookcomposer setCompletionHandler:^(SLComposeViewControllerResult result)
{
switch (result)
{
case SLComposeViewControllerResultDone:
NSLog(@"done");
break;
case SLComposeViewControllerResultCancelled:
NSLog(@"cancelled");
break;
default:
break;
}
}];
}
- (IBAction)btn_twitter:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
SLComposeViewController *twitter =
[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitter setInitialText:@"this is just a test"];
[twitter addURL:[NSURL URLWithString:@"http://www.google.com"]];
[twitter addImage:[UIImage imageNamed:@"images.jpg"]];
[self presentViewController:twitter animated:YES completion:nil];
} else {
NSLog(@"it is not configured");
}
}
- 1. PHPを使用してFacebookに投稿を投稿する方法
- 2. iOSアプリを使用してFacebookに投稿できない
- 3. Android用Facebook SDKを使用してFacebookタイムラインに投稿する
- 4. Graph APIを使用してカスタムサムネイルでビデオをfacebookページに投稿する方法
- 5. facebook javascript sdkを使用して「訪問者投稿」に投稿するには?
- 6. FacebookとTwitterへの簡単な投稿iOS 5&6
- 7. facebookにコメントを投稿する方法
- 8. Androidのfacebook-sdkダイアログを使用して壁に投稿する方法は?
- 9. iOS SDKを使用したFacebookファンページへの投稿
- 10. iOS SDKを使用したFacebook Wallへの投稿
- 11. グラフAPIを使用してFacebookフィードに画像リンクを投稿する方法
- 12. android facebook sdkを使用してユーザーフィード/投稿にアクセスする方法
- 13. 投稿写真Facebook iOS
- 14. RestKitを使用して投稿データなしで投稿する方法
- 15. facebook-sdkを使用してユーザーの「ニュースフィード」に投稿する
- 16. iPhoneで新しいFacebook GRAPH APIを使用してFacebookに写真とメッセージを投稿する方法
- 17. フレックスを使用してFacebookに画像を投稿する
- 18. Facebook APIを使用してファンページアルバムに画像を投稿する
- 19. facebook投稿をvisuzlizeする方法
- 20. Facebook APIを使用して「ビデオ付き投稿を作成する」方法
- 21. 投稿IDを使用して特定の投稿を表示する方法
- 22. 投稿を投稿してから投稿する方法
- 23. facebookアクションスクリプトを使用して壁に投稿する3 sdk
- 24. facebookに投稿してメッセージコンテンツのハイパーリンクを与える方法
- 25. JavaScriptを使ってFacebookの投稿を隠す方法
- 26. グラフAPIを使用してFacebookの投稿を取得する
- 27. アプリケーションアクセストークンを使用してFacebookアプリケーションページへのリンクを投稿する
- 28. facebook "App-to-User Notifications"をWordPressに投稿するコメントを投稿する方法
- 29. ネイティブiOS UIを使用してページにコメントを投稿する
- 30. オブジェクトを投稿してiosで返信する方法
チュートリアルの素敵なセットがここにあります:http://developers.facebook.com/docs/getting-started/getting-started-with-the-ios-sdk/ –
いいえ、私は意味iOS 6の新しいフレームワークを使用してください。 – jaytrixz
詳細については、ソーシャルフレームワークを使用してください。http://kmithi.blogspot.in/2012/10/integrating-facebook-and-twitter-in-ios.html – mithilesh