Depois que você integrar o Login do Facebook, o Compartilhamento do Facebook ou os Jogos do Facebook, alguns eventos do app serão automaticamente registrados e coletados para o Gerenciador de Eventos, a menos que você desabilite o registro automático. Recomendamos que todos os desenvolvedores de apps que usam o Login do Facebook, o Compartilhamento do Facebook ou os Jogos do Facebook entendam como esse recurso funciona. Para saber mais sobre as informações que são coletadas e sobre como desabilitar o registro automático de eventos, consulte Registro automático de eventos do app.
Veja mais informações sobre o SDK do Facebook para iOS aqui.
Este guia detalha como habilitar o compartilhamento do seu app do iOS no Facebook. Quando alguém compartilha algo do seu app, o conteúdo aparece na linha do tempo dessa pessoa e nos Feeds dos amigos dela.
Antes de adicionar compartilhamento ao seu app, você precisa fazer o seguinte:
.plist
do app.FBSDKShareKit.framework
ao projeto.Seu app não deve preencher o conteúdo a ser compartilhado automaticamente. Isso viola a Política da Plataforma do Facebook. Veja as Políticas do Desenvolvedor.
Introdução ao SDK do iOSCada tipo de conteúdo tem uma interface que você pode usar para representá-lo e que está de acordo com o SharingContent
. Depois de modelar o conteúdo, adicione uma interface de compartilhamento ao app, em conformidade com Sharing
, ou use a classe ShareDialog
fornecida.
Quando as pessoas compartilham links do seu app no Facebook, uma contentURL
é incluída com o link compartilhado. Crie seu conteúdo de compartilhamento de links com o modelo ShareLinkContent
.
Veja este exemplo de como acionar o compartilhamento:
guard let url = URL(string: "https://developers.facebook.com") else { // handle and return } let content = ShareLinkContent() content.contentURL = url let dialog = ShareDialog( viewController: self, content: content, delegate: self ) dialog.show()
Observação: se o app compartilhar links do iTunes ou da Google Play Store, não publicaremos imagens ou descrições que foram especificadas no compartilhamento. Em vez disso, publicaremos algumas informações do app extraídas diretamente da App Store com o Webcrawler. Isso pode não incluir imagens. Para ver uma prévia do compartilhamento de link do iTunes ou do Google Play, insira a URL no Depurador de Compartilhamento.
As pessoas podem compartilhar fotos do seu app no Facebook com o diálogo de compartilhamento ou com uma interface personalizada:
Crie seu conteúdo de compartilhamento de fotos com o modelo SharePhotoContent
.
func imagePickerController( _ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any] ) { guard let image = info[.originalImage] as? UIImage else { // handle and return return } let photo = SharePhoto( image: image, userGenerated: true ) var content = SharePhotoContent() content.photos = [photo] // use the content }
As pessoas que usam seu app podem compartilhar vídeos no Facebook com o diálogo de compartilhamento ou com sua própria interface personalizada:
Crie seu compartilhamento de conteúdo de vídeos com o modelo FBSDKShareVideoContent
. Para obter uma lista de todos os atributos, consulte a referência FBSDKShareVideoContent
.
func imagePickerController( _ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any] ) { let video: ShareVideo if #available(iOS 11, *) { guard let videoAsset = info[.phAsset] as? PHAsset else { return } video = ShareVideo(videoAsset: videoAsset) } else { guard let url = info[.referenceURL] as? URL else { return } video = ShareVideo(videoURL: url) } }
As pessoas que usam o app podem compartilhar uma combinação de fotos e vídeos no Facebook com o diálogo de compartilhamento. Observe o seguinte:
Crie seu conteúdo de compartilhamento multimídia com o modelo ShareMediaContent
.
let photo = SharePhoto(...) let video = ShareVideo(...) var content = ShareMediaContent() content.media = [photo, video]
Depois de tratar do conteúdo na criação de um modelo, você pode acionar os diálogos de mensagens ou compartilhamento.
No iOS, o Facebook tem botões nativos para acionar compartilhamentos.
Com o botão Compartilhar, as pessoas podem compartilhar conteúdo na própria linha do tempo do Facebook, na linha do tempo de um amigo ou em um grupo. Esse botão chama um diálogo de compartilhamento e pode ser adicionado à sua visualização, basta incluir o seguinte trecho de código na visualização:
var button = FBShareButton() button.shareContent = content // Add button to view
Com o botão Enviar, as pessoas podem enviar fotos, vídeos e links de forma privada aos amigos e contatos usando o app Facebook Messenger. Esse botão chama um diálogo de mensagens. e pode ser adicionado ao app, basta incluir o seguinte trecho de código na sua visualização:
var button = SendButton() button.shareContent = content // Add button to view
Se o app Messenger não estiver instalado, o botão Enviar ficará esmaecido. Para verificar se o botão Enviar pode ser usado no dispositivo atual, use a propriedade de SendButton
isImplicitlyDisabled
:
Para usar as experiências de compartilhamento internas do Facebook, defina seu conteúdo de acordo com a seção Conteúdo de modelagem acima e chame o diálogo de compartilhamento. Por exemplo, para compartilhar um link usando o diálogo de compartilhamento:
guard let url = URL(string: "https://developers.facebook.com") else { // handle and return } let content = ShareLinkContent() content.contentURL = url let dialog = ShareDialog( viewController: self, content: content, delegate: self ) dialog.show()
Em versões anteriores do SDK para iOS, o app precisava verificar se havia um app Facebook nativo instalado antes de abrir o diálogo de compartilhamento. Se a pessoa não tivesse o app instalado, você tinha que fornecer seu próprio código para chamar uma caixa de diálogo de fallback.
Agora, o SDK verifica se o app Facebook nativo está instalado automaticamente. Se não estiver, o SDK direciona as pessoas para o navegador padrão e abre um diálogo do feed.
Se o app Facebook nativo estiver instalado, as pessoas verão a folha de compartilhamento do iOS em vez de serem direcionados para o app Facebook para iOS nativo.
O diálogo de mensagens muda para o app nativo Messenger para iOS e devolve o controle ao seu app depois da publicação.
MessageDialog(content: content, delegate: delegate).show()
Observação: no momento, o diálogo de mensagens não é compatível com iPads.
O iOS inclui uma folha de compartilhamento nativa que permite que as pessoas publiquem atualizações de status, fotos, vídeos e links no Facebook. Com esse recurso, também é possível configurar o público e marcar a localização de uma publicação. O SDK do Facebook é compatível com o uso desse controle nativo. Na maior parte dos casos, essa é a experiência que as pessoas veem ao chamar o diálogo de compartilhamento do Facebook.
O uso da folha de compartilhamento do iOS está sujeito às Políticas do Desenvolvedor, incluindo a seção 2.3, que prevê que os apps não podem fazer o preenchimento automático no contexto da folha de compartilhamento. Isso significa que os apps talvez não preencham o campo initialText da folha de compartilhamento com conteúdo que não foi inserido pelo usuário.
Essa API também usa o mesmo bloco de estilo de outras partes do SDK do Facebook. Para mostrar o diálogo de compartilhamento nativo do iOS, use:
let dialog = ShareDialog( viewController: self, content: content, delegate: nil ) dialog.mode = .shareSheet dialog.show()
Observe que o argumento viewController
é obrigatório para que a folha de compartilhamento apareça.
Você pode especificar uma única hashtag para ser exibida com um vídeo, foto ou link compartilhado. Essa hashtag também é exibida no diálogo de compartilhamento, e as pessoas têm a oportunidade de removê-la antes de publicar.
Veja a seguir um exemplo de como adicionar uma hashtag ao compartilhamento de um link.
let content = ShareLinkContent() guard let url = URL(string: "https://developers.facebook.com") else { return } content.contentURL = url content.hashtag = Hashtag("#MadeWithHackbook")
Com o App Links, você pode ter um link de volta para seu app em publicações feitas por meio dele no Facebook.
Quando as pessoas clicam em uma publicação do Facebook feita do seu app, ele é aberto e você pode até vincular a publicação a um conteúdo específico dentro do app.
Caso esteja usando o Simulador para testar o compartilhamento no seu app, você verá erros ao tentar compartilhar vídeos ou fotos. Isso ocorre porque você precisa instalar o Facebook para iOS para ter o diálogo de compartilhamento. Essa ação não é compatível com o Simulador.
Caso queira compartilhar links, você não precisa instalar o Facebook para iOS e, portanto, pode fazer o teste. Para testar outros cenários de compartilhamento, configure um dispositivo de teste real com o Facebook para iOS instalado.