Публикация в Messenger для iOS и Android

Если при разработке используется Facebook SDK для iOS или Android версии 4.29.0 или более поздней, можно предоставить людям возможность публиковать ссылки и медиафайлы из ваших приложений в Messenger. При этом можно задействовать расширения чата через ссылку атрибуции. Расширения находятся в разделе Ещё интерфейса публикации.

Подробнее читайте в следующих разделах:

Информацию о том, как добавить возможность публикации в Messenger для веб-платформы, см. в этой статье.

Типы публикаций

Facebook SDK предоставляет следующие типы публикаций:

  • публикация ссылки (аналогично существующей функции, но с pageID для атрибуции);
  • фото (без атрибуции).

В таблице ниже перечислены все поддерживаемые типы публикаций в Messenger, и указано, требуется ли идентификатор Страницы или приложения.

Тип публикации Требуется ли идентификатор Страницы Приложения

Публикация ссылки

Необязательно

  • Ссылка без атрибуции
  • Ссылка с атрибуцией

Фото

Не поддерживается

  • Фото
  • Фото из библиотеки

Привязка идентификатора Страницы к приложению

Разработчики могут указать в диалоге публикации идентификатор Страницы, и тогда при публикации контента из приложения в Messenger через SDK Sharing публикуемый контент будет связан с этой Страницей. В свою очередь администраторы Страниц могут выбирать, какие приложения могут связывать публикации с их Страницами, и предотвращать ложную атрибуцию. Чтобы разрешить приложению атрибуцию публикаций, администратор может связать идентификатор приложения и Страницы.

Для этого выполните следующие действия:

  1. Откройте Настройки Страницы.
  2. Нажмите Платформа Messenger.
  3. В Общих настройках перейдите в раздел Привязать приложение.
  4. Введите идентификатор приложения и нажмите кнопку Связать.
  5. Если приложения НЕ БЫЛО в таблице Подписанные приложения, оно появится там, и ему будет назначена роль "Атрибуция публикаций". Если приложение уже было в этой таблице, ему просто будет добавлена роль "Атрибуция публикаций".

Администраторы Страницы могут лишить приложение этого разрешения, то есть запретить использовать атрибуцию публикаций.

Чтобы удалить роль "атрибуция публикаций" для конкретного приложения, выполните следующие действия:

  1. В таблице Подписанные приложения откройте меню в столбце "Роль" для нужного приложения.
  2. Нажмите "Атрибуция публикаций", чтобы отменить эту роль.
  3. Если атрибуция публикаций была единственной ролью для этого приложения, строка приложения удаляется из таблицы. В остальных случаях строка приложения остается, а со строки "Атрибуция публикаций" снимается выделение.

Регистрация доменов

Если вы используете кнопку с URL в SDK Share и хотите включить для URL расширение Messenger, вам нужно зарегистрировать домен URL, иначе публикация может работать некорректно.

Регистрация домена:

  1. Откройте Страницу.
  2. Перейдите в раздел Настройки > Расширенный обмен сообщениями.
  3. Добавьте домен в поле Белый список доменов.

Подробнее см. в разделе SDK расширений Messenger — обязательное внесение доменов в белый список.

iOS

Предварительные требования

Прежде чем добавить в приложение возможность публикации в Messenger, выполните следующие действия:

  • добавьте в среду разработки мобильных приложений Facebook SDK для iOS;
  • настройте идентификатор приложения Facebook и свяжите его с идентификатором Страницы, используя инструмент платформы Messenger;
  • укажите идентификатор своего приложения, его отображаемое имя и причину, по которой пользователям предлагается предоставить вашему файлу .plist доступ к фото;
  • создайте в FBSDKShareKit.framework ссылку на свой проект.

Подробнее см. в статье Facebook SDK для iOS: начало работы.

Убедитесь, что приложение выполняет вызов canShow или validate для экземпляра MessageDialog, чтобы определить, установлена ли на устройствах совместимая версия 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.