【Xcode6.2 + iOS 8.4(iPhone5) + MacOX10.9.5】
引き続きFacebook投稿の話です。
前回のポストに書いたようにFacebook投稿自体は出来るようになったのですが、プログラムで設定したメッセージが表示されませんでした。コードはこんな感じ。
//facebook:送信
- (IBAction)sendFB:(UIBarButtonItem *)sender {
// 組み込みのFacebookが利用可能な端末かを検証する
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
// Facebook投稿機能のインスタンスを作成する
SLComposeViewController *slComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// 投稿するコンテンツを設定する
// 表示する文字列
[slComposeViewController setInitialText:@"#アイコン顔カメラ"];
// URL
[slComposeViewController addURL:[NSURL URLWithString:@"http://www.c-geru.com/"]];
// 画像
[slComposeViewController addImage:[UIImage imageNamed:@"icon_10.png"]];
// 処理終了後に呼び出されるコールバックを指定する
[slComposeViewController setCompletionHandler:^(SLComposeViewControllerResult result) {
switch (result) {
case SLComposeViewControllerResultDone:
NSLog(@"Done!!");
break;
case SLComposeViewControllerResultCancelled:
NSLog(@"Cancel!!");
}
}];
// 表示する
[self presentViewController:slComposeViewController animated:YES completion:nil];
}
}
で、表示される画面がコレ。「slComposeViewController setInitialText:」のテキストが表示されていません。

この画面でテキスト入力すると、そのテキストは投稿されますが、Xcodeに下記のようなメッセージが表示されます。
plugin com.apple.share.Facebook.post invalidated
【追記】2015.8.17 ちなみに「slComposeViewController setInitialText:」をコメントにしても、投稿後に上記メッセージが表示されます。
調べてみると、こんな情報が。
・ios – UIActivityViewControllerでFacebookにシェアできない – スタック・オーバーフロー
・sharing – ios plugin com.apple.share.Facebook.post do not show provided text – Stack Overflow
これによると、Facebook側のポリシー変更ということのようです。
・Platform Policy 2.3 Example and Explanation
メッセージは基本ユーザに入力してもらうと考えれば、ハッシュタグつけるとか以外に困ることはなさそうですが、一応備忘録として。