Если при разработке используется Facebook SDK для iOS или Android версии 4.29.0 или более поздней, можно предоставить людям возможность публиковать ссылки и медиафайлы из ваших приложений в Messenger. При этом можно задействовать расширения чата через ссылку атрибуции. Расширения находятся в разделе Ещё интерфейса публикации.
Подробнее читайте в следующих разделах:
Информацию о том, как добавить возможность публикации в Messenger для веб-платформы, см. в этой статье.
Facebook SDK предоставляет следующие типы публикаций:
pageID
для атрибуции);В таблице ниже перечислены все поддерживаемые типы публикаций в Messenger, и указано, требуется ли идентификатор Страницы или приложения.
Тип публикации | Требуется ли идентификатор Страницы | Приложения |
---|---|---|
Публикация ссылки | Необязательно |
|
Фото | Не поддерживается |
|
Разработчики могут указать в диалоге публикации идентификатор Страницы, и тогда при публикации контента из приложения в Messenger через SDK Sharing публикуемый контент будет связан с этой Страницей. В свою очередь администраторы Страниц могут выбирать, какие приложения могут связывать публикации с их Страницами, и предотвращать ложную атрибуцию. Чтобы разрешить приложению атрибуцию публикаций, администратор может связать идентификатор приложения и Страницы.
Для этого выполните следующие действия:
Администраторы Страницы могут лишить приложение этого разрешения, то есть запретить использовать атрибуцию публикаций.
Чтобы удалить роль "атрибуция публикаций" для конкретного приложения, выполните следующие действия:
Если вы используете кнопку с URL в SDK Share и хотите включить для URL расширение Messenger, вам нужно зарегистрировать домен URL, иначе публикация может работать некорректно.
Регистрация домена:
Подробнее см. в разделе SDK расширений Messenger — обязательное внесение доменов в белый список.
Прежде чем добавить в приложение возможность публикации в 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, которые кратко изложены ниже:
Убедитесь, что приложение выполняет вызов MessageDialog.canshow({template})
, чтобы определить, установлена ли на устройствах совместимая версия Messenger.