iOS用またはAndroid用Facebook SDKバージョン4.29.0以降を使って開発する場合は、利用者がリンクとメディアの両方をアプリからMessengerにシェアできるよう設定できます。ユーザーがMessengerにシェアすると、アトリビューションリンクを通じてチャット拡張機能をトリガーできます。チャット拡張機能がシェアインターフェイスの[詳細]セクションに表示されます。
詳しくは、次のセクションをご覧ください。
ウェブ用Messengerへのシェアの実装については、ウェブ用Messengerへのシェアをご覧ください。
Facebook SDKには、以下のシェアタイプが提供されています。
pageID
があります)次の表に、Messengerへのシェアでサポートされているすべてのシェアタイプ、およびページIDまたはアプリIDが必須かどうかを示します。
シェアタイプ | ページIDが必須かどうか | アプリ |
---|---|---|
リンクシェア | 任意 |
|
写真 | サポートされない |
|
開発者はシェアフローでページIDを指定できます。これにより、利用者がシェアSDKを経由してアプリからMessengerにコンテンツをシェアすると、そのコンテンツがページにアトリビューションされます。ページ管理者は、どのアプリがページのシェアアトリビューションを使うことができるかを制御することによって、アトリビューションミスを防ぐことができます。アプリにシェアアトリビューションを付与する場合、管理者は対象のアプリIDとページIDをリンクさせます。
アプリIDとページIDをリンクするには、次のようにします。
ページ管理者は、アプリからシェアアトリビューションを使う権限を削除することもできます。
指定したアプリの「シェアアトリビューション」の役割を削除するには、次のようにします。
シェアSDKで[URL]ボタンを使い、Messengerで開いた際にURLのMessengerエクステンションを有効にする場合は、正しくシェアできるようにURLドメインを登録する必要があります。
ドメインの登録手順は、次のとおりです。
詳しくは、MessengerエクステンションSDK - 必須ドメインのホワイトリスト登録をご覧ください。
Messengerへのシェア機能をアプリに追加する前に、以下の手順を実行してください。
.plist
ファイルに、アプリID、表示名、写真へのアクセス理由(人による判読が可能なもの)を追加します。FBSDKShareKit.framework
をプロジェクトにリンクします。詳しくは、iOS用Facebook SDKスタートガイドをご覧ください
また、アプリからMessageDialog
インスタンスでcanShow
またはvalidate
を呼び出して、互換性のあるバージョンのMessengerが利用者のデバイスにインストールされているかどうかを確認してください。
引用プロパティはサポートされていません。
guard let url = URL(string: "https://newsroom.fb.com/") else { preconditionFailure("URL is invalid") } let content = ShareLinkContent() content.contentURL = url let dialog = MessageDialog(content: content, delegate: self) do { try dialog.validate() } catch { print(error) } dialog.show()
// Assumes your assets contain an image named "puppy" guard let image = UIImage(named: "puppy") else { return } let photo = SharePhoto(image: image, userGenerated: true) let content = SharePhotoContent() content.photos = [photo] let dialog = MessageDialog(content: content, delegate: self) // Recommended to validate before trying to display the dialog do { try dialog.validate() } catch { print(error) } dialog.show()
// Assuming you have a URL for a PHAsset let video = ShareVideo(videoURL: assetURL) let content = ShareVideoContent() content.video = video let dialog = MessageDialog(content: content, delegate: self) // Recommended to validate before trying to display the dialog do { try dialog.validate() } catch { print(error) } dialog.show()
Androidでのシェアに記載されている指示に従います。以下はその概要です。
また、アプリでMessageDialog.canshow({template})
を呼び出して、互換性のあるバージョンのMessengerが利用者のデバイスにインストールされているかどうかを確認してください。