分享到 iOS 和 Android 版 Messenger

使用 Facebook iOS SDK 或 Facebook Android SDK 的 v4.29.0 或更新版本開發內容時,您可以讓用戶同時將連結和媒體從您的應用程式分享到 Messenger。當用戶將內容分享到 Messenger,您可透過歸因連結觸發聊天擴充套件。您的聊天擴充套件會在分享介面的更多部分顯示。

詳情請參閱下列各部分:

若要在網頁版 Messenger 中執行分享功能,請參閱分享到網頁版 Messenger

分享類型

Facebook SDK 提供以下分享類型:

  • 連結分享(與現有的連結分享相同,但含有歸因用的 pageID
  • 相片(未歸因)

下表列出分享到 Messenger 時可使用的所有分享類型,當中指明是否為必須提供專頁編號或應用程式編號。

分享類型 是否需要專頁編號? 適用情景

連結分享

可選

  • 不含歸因的連結
  • 含歸因的連結

相片

不支援

  • 相片
  • 圖庫相片

連結應用程式編號和專頁編號

開發人員可在分享流程中指定專頁編號,而當用戶透過分享 SDK 的方式將內容從應用程式分享到 Messenger 時,內容便會歸因到專頁。接著,專頁管理員便可控制哪些應用程式能將分享歸因用於專頁,借此防止歸因不實的問題發生。為了將分享歸因權限授予應用程式,管理員會連結應用程式編號與專頁編號。

若要連結應用程式編號和專頁編號:

  1. 前往專頁的設定
  2. 點擊 Messenger 平台部分。
  3. 前往一般設定連結應用程式部分。
  4. 輸入應用程式編號,然後點擊連結按鈕。
  5. 如果這個應用程式不在訂閱的應用程式表格中,則會顯示在列有相關「分享歸因」角色的表格中。如果應用程式已在表格中,則系統會為應用程式新增「分享歸因」角色。

此外,專頁管理員也可以移除應用程式使用分享歸因的權限。

若要移除特定應用程式的「分享歸因」角色:

  1. 訂閱的應用程式表格中,點擊應用程式「角色」欄的下拉式選單。
  2. 點擊「分享歸因」以取消選取角色。
  3. 如果「分享歸因」是應用程式的唯一角色,則應用程式所在的列就會從表格中移除。否則,系統會將這一列保留下來,但取消選取「分享歸因」列。

註冊網域

如果您在分享 SDK 中使用了網址按鈕,且希望為 Messenger 中開啟的網址啟用 Messenger 擴充功能,就必須註冊網址網域,分享才能正常運作。

若要註冊網域:

  1. 查看專頁。
  2. 前往設定 > 進階訊息功能
  3. 將網域加入列入允許清單的網域欄位。

詳情請參閱 Messenger 擴充功能 SDK:必要網域允許清單

iOS

必要條件

在應用程式中加入分享到 Messenger 功能前,請完成下列步驟:

  • Facebook iOS SDK 加至您的流動開發環境
  • 使用 Messenger 平台工具配置您的 Facebook 應用程式編號,並將之連結至專頁編號。
  • 新增您的應用程式編號、顯示名稱,並提供人類可讀的理由描述,說明為什麼您需要存取應用程式 .plist 檔案的相片。
  • FBSDKShareKit.framework 連結至您的專案。

詳情請參閱Facebook iOS SDK 新手指南

此外,您的應用程式必須對 MessageDialog 實例呼叫 canShowvalidate,以便判斷用戶是否已在裝置上安裝版本兼容的 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

必要條件

按照在 Android 分享中的指示操作,總結如下:

此外,您的應用程式必須呼叫 MessageDialog.canshow({template}),以便判斷用戶是否已在裝置上安裝版本兼容的 Messenger。