IOS 8.3。そのために使用します。
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[controller setInitialText:@"First post from my iPhone app"];
[self presentViewController:controller animated:YES completion:Nil];
}
最新のFacebookアプリアップデート(v29)をインストールしたことが問題のようです。それを削除すると、問題が「修正」されます。
https://developers.facebook.com/bugs/1632385646995079/https://developers.facebook.com/bugs/962985360399542/
更新(2015年6月3日)
まあ。新しいFacebookのポリシーでは、setInitialText:
は事前入力違反です。
https://developers.facebook.com/docs/apps/review/prefill
だから、これからコンテンツを共有する唯一の方法は、FBSDKShareDialog
Facebookの効率が大好きです。これには少し遅れていますが、誰かを助けるかもしれません。
#import <FBSDKShareKit/FBSDKShareKit.h>
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = self.urlForSocialMedia;
content.contentDescription = self.textForFB;
content.contentTitle = @"Results.";
[FBSDKShareDialog showFromViewController:self
withContent:content
delegate:self];
SetInitialTextを追加する前に#
このテストの前。以下のコード。それは私のために働いています
SLComposeViewController *mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[mySLComposerSheet setInitialText:@"#myInitialTextIsHere"];
[mySLComposerSheet addURL:[NSURL URLWithString:strURL]];
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"Post Canceled");
break;
case SLComposeViewControllerResultDone:
NSLog(@"Post Sucessful");
break;
default:
break;
}
}];
[self presentViewController:mySLComposerSheet animated:YES completion:nil];