FacebookでFBSDKShareLinkContent
を使用してリンクを共有しようとしています。
URL、説明、タイトルを設定しました。 SDKは、contentURL
から取得した情報によってタイトルと説明を自動的に入力します。
しかし、コードで指定したカスタムのタイトルと説明を設定したいと思います。とにかくこの動作を回避する方法はありますか?
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
[content setContentTitle:@"Testing title"];
[content setContentDescription:@"Testing description."];
content.contentURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://www.google.co.in/"]];
[FBSDKShareDialog showFromViewController:self
withContent:content
delegate:nil];
私は同じ問題に直面し、1つの回避策-FBSDKShareDialogインスタンスの直接設定モードをFBSDKShareDialogModeFeedWebに見つけました。
FBSDKShareDialog* dialog = [[FBSDKShareDialog alloc] init];
dialog.mode = FBSDKShareDialogModeFeedWeb;
dialog.shareContent = content;
dialog.fromViewController = self;
[dialog show];
アプリ内のUIWebViewにフィードダイアログを表示し、正しいタイトルと説明を含む投稿のプレビューを表示します。
FBSDKShareDialogModeをFeedBrowserに設定すると問題が解決します
let dialog = FBSDKShareDialog()
dialog.fromViewController = self
dialog.shareContent = shareLink
dialog.mode = FBSDKShareDialogMode.FeedBrowser
dialog.show()
代わりにFBSDKShareLinkContentのquoteプロパティを使用してください
FBSDKShareLinkContent *linkContent = [FBSDKShareLinkContent new];
linkContent.quote = @"your quote";
FBSDKShareDialog *shareDialog = [FBSDKShareDialog new];
shareDialog.shareContent = linkContent;
setContentTitle
およびsetContentDescription
はGraph API 2.9から非推奨になりました。詳細については、 https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations を参照してください
私はこのコードを試しましたが、電話の設定でFacebookアカウントを設定するまで、仮想デバイスで完全に機能しました。それを設定した後、ダイアログを開くたびに、デフォルトのiOSソーシャル共有ダイアログが開かれました。設定にアカウントが存在する場合は、アカウントを削除するか、FBアプリケーションをインストールするだけで、ドキュメントを共有するにはFBアプリが必要であることがわかりました。
これで問題が解決しない場合は、いつでもiOSのソーシャルシェアフレームワークを使用できます。以下に例を示します。
http://www.appcoda.com/ios-programming-101-integrate-Twitter-and-facebook-sharing-in-ios-6/
ちなみに、これが今日の私もこの問題を解決するのに役立つことを願っています。iOSのソーシャル共有フレームワークですべてがうまく機能しています。