分享至 iOS 和 Android 版 Messenger

當您使用 Facebook iOS SDK 或 Facebook Android SDK 4.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

另請確認您的應用程式會在 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 版本。