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が利用者のデバイスにインストールされているかどうかを確認してください。