Perguntas frequentes de desenvolvedores
Account Kit

Se você receber um erro como "Ocorreu um erro" e enfrentar problemas para determinar a causa, é possível habilitar mensagens de erro mais detalhadas que poderão mostrar informações mais úteis. Mais documentações sobre o sinalizador de depuração para o método init()' do SDK podem ser encontradas em https://developers.facebook.com/docs/accountkit/webjs/reference

A Verificação instantânea do Account Kit ignora a necessidade de um código de verificação via SMS quando os consumidores do Android inserem um número de telefone que corresponde ao número que listaram no Facebook.

Isso é possível apenas se a pessoa estiver usando o aplicativo Facebook para Android. Se não for possível confirmar uma correspondência, a pessoa será levada pelo fluxo regular e receberá um código de verificação via SMS.

O Account Kit exibirá as interfaces do usuário localizadas para os idiomas nesta lista: https://developers.facebook.com/docs/accountkit/languages.

Não, oferecemos suporte apenas para vincular o SDK do JS via https://sdk.accountkit.com/en_US/sdk.js. Esse script buscará o carregador do SDK, que carregará o SDK mais recente por meio do accountkit.com ou do cache do seu navegador.

Nos casos em que você queira hospedar o SDK por meio do seu próprio servidor, há um prazo de carência de 24 horas. Depois desse prazo de carência, o SDK começará a emitir alertas e deixará de funcionar após sete dias.

Defina o parâmetro enableSendToFacebook (no iOS) ou setFacebookNotificationsEnabled (no Android) para verdadeiro.

Os usuários que entrarem no seu aplicativo receberão a mensagem de confirmação via notificações do Facebook, se o SMS não puder ser enviado e se o número de telefone utilizado for o número principal associado à conta deles do Facebook.

Você precisará adicionar a permissão INTERNET para chamar os métodos da API. Além disso, você poderá optar por adicionar outras permissões para reduzir o atrito durante o processo de login:

  • Para acesso de SMS, adicione as permissões RECEIVE_SMS e READ_PHONE_STATE.
  • Para recursos de email, adicione a permissão GET_ACCOUNTS.

Saiba mais sobre como integrar o Account Kit ao seu aplicativo Android aqui.

SDK para Android

Se o usuário abrir o diálogo de compartilhamento móvel ou o diálogo do feed móvel, mas fechá-lo por meio do cancelamento, seu aplicativo será notificado sobre isso por meio do método de retorno de chamada onSuccess(). Considere o retorno de chamada onSucess() como um mecanismo para sinalizar que o diálogo foi fechado com sucesso de alguma maneira, mas você não pode utilizá-lo para definir se algo realmente foi publicado. Se o usuário tiver também concedido ao aplicativo o escopo de permissão "publish_actions", o método de retorno de chamada onCancel() será invocado no cancelamento.

Para consultar todos os detalhes da classe FacebookCallback, acesse a documentação de referência.

O botão Curtir nativo (LikeView) funciona de forma idêntica ao botão Curtir baseado na web. A maioria das URLs baseadas no Facebook não pode ser utilizada devido à privacidade. As exceções são as Páginas do Facebook e a página inicial do Facebook.

Faça uma verificação preliminar por meio da prévia do botão Curtir.

Isso é intencional. Tivemos muitos relatos de spam e abuso desse recurso e, para melhorar a experiência geral do usuário, decidimos aplicar essa mudança.

Há maneiras melhores de compartilhar no Android aqui.

Análise do app

We’ve moved all Messenger permissions to the Permissions and Features page.

We've consolidated this into one Permissions and Features page for Business apps, where you can see what access levels you have for each permission and feature.

Yes, developers may opt out of the Business app type and return to the previous App Review process for their app by selecting “Change App Type” on the App Dashboard. However, developers may not opt back into the Business app type and will need to create a new app to do so.

Additionally, apps previously in Development Mode that opt out to the legacy experience that have been approved for Advanced Access via App Review in the new model will lose access to data beyond what their business or anyone with a role on their app owns until they turn their app to Live Mode.

We have replaced Development and Live Mode with Standard and Advanced Access. Standard Access is always active and allows you to access data that a developer’s business or anyone with a role on their app owns. You may submit for App Review for permissions and features to access data owned by other businesses or people. Refer to our Access Levels document to learn more.

Business apps designed to help businesses and organizations manage Pages, Groups, Events, Ads, and ad-related assets.

Veja abaixo os possíveis motivos por que seu aplicativo perdeu as permissões após a aprovação inicial:
  • O aplicativo foi movido para uma empresa diferente não verificada. Nesse caso, todas as permissões aprovadas anteriormente são bloqueadas.
    • Se o aplicativo for movido de volta para a empresa verificada, as permissões serão desbloqueadas.
  • O aplicativo é marcado como Fornecedor de serviço para outras empresas e, em seguida, é movido para uma organização diferente que não foi verificada.

Yes, ALL apps that leverage permissions that require review (Pages API, Groups API, Events API, Business Manager API, Instagram Graph API, Messenger Platform, extended Facebook Login permissions, Marketing API and Lead Ads API) must submit for app review in adherence with the communicated deadlines.

Active apps that leverage permissions with an August 1st deadline (Pages API, Groups API, Events API, Business Manager API, Instagram Graph API, Messenger Platform, extended Facebook Login permissions) and have not yet proactively submitted for review will be auto-enrolled in the review process. You can accelerate the App Review process by submitting your app for review prior to auto-enrollment. This will give you more control over when your app is reviewed and what information is used for the review.

Para obter mais detalhes, acesse esta página. O processo dará a você a oportunidade de fornecer detalhes sobre as permissões de que precisa e como elas serão utilizadas. O Facebook analisará o caso de uso e determinará se ele é permitido por nossa política. Após a análise de permissões, pode haver requisitos adicionais, como a verificação da empresa e a assinatura do contrato, dependendo da API/permissão.

A exigência de análise do aplicativo é baseada no nível de ID do aplicativo. Cada aplicativo que usar essas permissões ou recursos precisará passar por essa análise.

Yes, if your apps have made calls to the Graph API in the last 28 days as of July 31, 2018 and require access to the reviewable permissions with an August 1st deadline, your app will be auto-enrolled in the app review process. We will notify you when we have a process available to send us the additional information needed to complete the review process.

As we announced earlier this year, all apps accessing the Pages API, Groups API, Events API, Business Manager API, Instagram Graph API, Messenger Platform, and Facebook Login were expected to submit for app review by August 1.

To help protect the integrity of our platform, we have removed API access for apps that require these permissions, have not gone through app review, and have not been active within the last 28 days as of July 31, 2018. If you still need access to our APIs, we encourage you to submit for review through your app's App Dashboard.

All active apps that require these permissions will be auto-enrolled in app review in the coming weeks. Developers will be notified if we require additional information to complete the app review submission. If responses are not received in the allocated timeframe, reviewable API access will be disabled.

Caso seu envio atual exija mais informações, você terá 30 dias a partir do recebimento da solicitação para resolver e reenviá-la para análise. Durante esses 30 dias, a equipe de Análise do Aplicativo pode solicitar que você forneça mais informações. A janela de 30 dias não será redefinida com cada reenvio durante esse período.

Para testar um novo recurso ou permissão, depois da análise e da publicação, use o recurso Criar aplicativo de teste no Painel de Aplicativos para criar um clone do seu aplicativo de produção. No Painel do aplicativo de produção, clique na seta para baixo ao lado do nome do aplicativo no painel de navegação superior esquerdo. Em seguida, clique em Criar aplicativo de teste. O clone, criado com o status Em desenvolvimento, permite que todas as funções do aplicativo acessem todos os recursos e permissões.

Se os clientes também forem "proprietários" do aplicativo, eles serão submetidos ao processo como desenvolvedores diretos. Se os clientes tiverem um desenvolvedor de terceiros como "proprietário" do aplicativo, ele é que será submetido à análise.

Você precisará solicitar as permissões leads_retrieval e pages_manage_ads.

Você pode fornecer um screencast da integração, ou se o aplicativo não tiver uma experiência de usuário final, um mínimo de duas capturas de tela mostrando a tela de configuração de sua página, do CRM ou do Gerenciador de Negócios, assim como o fornecimento de uma ID da Página de uma página que você estará usando por meio desses produtos.

Nosso documento Aplicativos servidor para servidor também traz diretrizes para a conclusão da análise do aplicativo para os aplicativos que não têm interface do usuário.

O processo de análise do aplicativo refere-se a aplicativos que exigem certas permissões de API. Você pode ler sobre as permissões que exigem análise aqui. A mera configuração do SDK não exige a análise do aplicativo. No entanto, o SDK permite que aplicativos realizem chamadas para APIs do Facebook e, se essas APIs exigirem, será necessário enviar o aplicativo para análise.

Se você já tiver uma conta do Gerenciador de Negócios, recomendamos que você conecte o aplicativo ao Gerenciador de Negócios existente.

Se houver várias contas do Gerenciador de Negócios que pertençam à empresa, recomendamos determinar a lógica para várias contas do Gerenciador e alinhar o aplicativo ao Gerenciador mais apropriado. Se a empresa tiver uma linha de crédito configurada por meio do Gerenciador de Negócios, recomendamos que você conecte o aplicativo àquela que tiver a linha de crédito.

Damos aos desenvolvedores a oportunidade de fornecer usuários de teste específicos caso haja configurações adicionais, listas de liberação ou informações de perfil do usuário de teste que eles desejem que usemos. Se um usuário de teste não for fornecido, usaremos um nosso mesmo. O campo deve ser marcado como opcional e a opção de não marcá-lo não deve gerar bloqueio.

A análise do aplicativo deve ser realizada para cada aplicativo. Recomendamos que você confira seu Painel de Aplicativos para obter a lista das permissões específicas que exigem análise.

A verificação da empresa só precisa ser realizada uma vez por Gerenciador de Negócios. Se você optar por associar todos os aplicativos ao mesmo Gerenciador de Negócios, só precisará passar pela verificação da empresa uma única vez.

O aplicativo deve ser vinculado ao Gerenciador de Negócios da empresa que detém a propriedade do aplicativo e tem acesso aos dados gerados por ele. Essa deverá ser a única organização a passar pelo processo de verificação da empresa.

Você pode encontrar o status da verificação da empresa e dos contratos, além de etapas para seguir no painel de verificação de empresas na guia de análise do aplicativo do Painel de Aplicativos. Enviaremos a você notificações durante o processo para avisá-lo qual ação é necessária.

You need to initiate app review before August 1, 2018 for these APIs: Pages API, Groups API, Events API, Instagram Platform API, Messenger Platform, Business Manager API, and Facebook Login.

You need to initiate App Review before February 1, 2019 for these APIs and features: the Marketing API and the Lead Ads Retrieval feature.

Estamos lidando com um grande volume de solicitações no momento. O processo todo pode levar várias semanas.

  • A análise de permissões pode levar várias semanas. A mais nova atualização sobre as linhas do tempo pode ser encontrada aqui.
  • A verificação da empresa leva alguns dias, dependendo da qualidade da documentação fornecida.
  • O processo de assinatura do contrato é concluído assim que seu funcionário escolhido assinar o contrato.

Como parte do processo de análise, podem ser solicitadas informações da empresa, como nome legal, endereço e número de telefone. Além disso, talvez você precise fornecer documentação da empresa, como faturas de serviço, licenças, certificados de formação ou artigos de incorporação.

A partir de 1º de agosto de 2018, só é preciso verificar o Gerenciador de Negócios a que o aplicativo está conectado.

Quando novas APIs forem disponibilizadas, será necessário solicitá-las pela análise do aplicativo. A verificação da empresa, porém, só precisa ocorrer uma vez por entidade de Gerenciador de Negócios, ou seja, não será solicitada novamente quando novas permissões ou APIs forem exigidas para um aplicativo.

Todos os aplicativos existentes que chamem as permissões estendidas do Login do Facebook e as seis APIs (Páginas, Messenger, Gerenciador de Negócios, Instagram, Grupos e Eventos) precisam passar pelo novo processo de Análise do Aplicativo, que inclui a verificação comercial e a assinatura de contratos. A Análise do Aplicativo não precisa estar concluída antes desta data, apenas ter sido enviada. Se o envio não ocorrer antes de 1º de agosto de 2018, então o acesso a essas APIs será perdido em 2 de agosto de 2018.

Todos os aplicativos existentes que chamem a API de Marketing e a API de recuperação de anúncio de cadastro precisam passar pelo novo fluxo de Análise do Aplicativo, que inclui a verificação comercial e a assinatura de contratos, antes de 1º de fevereiro de 2019.

Consulte mais detalhes nesta página. O processo dará a você a oportunidade de fornecer detalhes sobre as permissões de que precisa e sobre como elas serão usadas. O Facebook analisará o caso de uso e determinará se ele é admitido por nossa política. Após a análise de permissão, dependendo da permissão/API, podemos fazer solicitações adicionais, tais como verificação comercial e assinatura de contrato.

Uma empresa só precisa ser verificada uma vez. Os contratos só precisam ser assinados uma vez por nível comercial. Envios posteriores de aplicativo exigirão análise do aplicativo, mas não uma nova verificação.

A necessidade de análise do aplicativo se baseia no nível da ID do aplicativo. Cada aplicativo individual que usa esses recursos ou permissões devem ser enviados para análise.

Em 1º de maio de 2018, anunciamos um novo processo de Análise do Aplicativo exigido para o Login do Facebook (permissões estendidas) e seis APIs (Páginas, Messenger, Gerenciador de Negócios, Instagram, Grupos e Eventos). O envio da Análise do Aplicativo para essas APIs/permissões deve ser feito antes de 1º de agosto de 2018 para que o acesso a essas APIs seja mantido.

Em 2 de julho de 2018, anunciamos APIs adicionais que exigem análise do aplicativo: Recuperação de anúncio de cadastro e API de Marketing. O envio de Análise do Aplicativo para essas APIs deve ser feito antes de 1º de fevereiro de 2019 para que o acesso seja mantido. Leia mais sobre os prazos aqui.

Não há alterações nas APIs do Gerenciador de Negócios na Graph API v3.0. Os aplicativos que solicitarem acesso a permissões de Business_Management precisam passar pela análise do Facebook.

Não há alterações na política de análise do aplicativo do Facebook que afetem aplicativos que usam a API de Marketing do Facebook. Para conferir as alterações feitas na API atual, veja o registro de alterações da Graph API.

Sim. Sem a análise, os aplicativos só têm acesso a um nome de usuário, endereço de email e foto do perfil. Todas as outras permissões exigem a análise do Facebook.

A API do Instagram não é afetada pela Graph API v3.0. No entanto, todos os aplicativos que usam a API do Instagram precisam ser analisados pelo Facebook.

Na Graph API v3.0, os aplicativos que acessam eventos precisam usar a permissão user_events. Todos os aplicativos que usam essa permissão precisam ser analisados pelo Facebook.

A permissão user_managed_groups tornou-se obsoleta na Graph API v3.0. Em vez dela, os aplicativos agora podem usar a nova API de Grupos, com as permissões publish_groups e read_groups_user_data. A nova API e as permissões exigem que os aplicativos passem pela análise do Facebook.

A permissão publish_actions tornou-se obsoleta na Graph API v3.0. Os aplicativos ainda podem publicar stories via experiências mediadas, como o diálogo de compartilhamento do Facebook na web ou planilhas de compartilhamento do iOS e do Android. Os aplicativos podem publicar em grupos usando a permissão publish_groups, que requer que o aplicativo passe pela análise.

Sim. Na versão 3.0, todas as APIs da Plataforma do Messenger estão inclusas na permissão Pages_messaging e devem passar pela análise.

Sim. Os aplicativos que acessam conteúdo de páginas públicas precisam solicitar o recurso Acesso a conteúdo público de páginas e devem passar pela análise do Facebook.

Durante o processo de análise, nossa equipe segue as instruções que você forneceu para reproduzir como as permissões são usadas no seu aplicativo. Se não pudermos reproduzir a experiência, por exemplo, porque não conseguimos seguir suas instruções ou porque não conseguimos entrar no aplicativo, não poderemos aprovar o envio.

Para evitar isso, faça o seguinte:

  • Forneça uma versão funcional do aplicativo que usa a permissão.
  • Verifique se as suas instruções na seção Adicionar notas estão claras.
  • Verifique se as permissões de login solicitadas personalizam a experiência do usuário e estão de acordo com nossos princípios.

Especialmente no caso da permissão publish_actions, confira se a funcionalidade de publicação do seu aplicativo está devidamente configurada. Precisamos conseguir publicar o conteúdo do seu aplicativo no Facebook durante o processo de análise.

O processo de análise do aplicativo envolve carregá-lo em cada plataforma compatível, entrar com o Facebook e usar todas as integrações com o Facebook que você solicitou na análise. Muitas vezes, isso causa o que chamamos de “problemas gerais”. Esses problemas são erros relativos ao carregamento do aplicativo, à entrada no aplicativo ou ao funcionamento geral do aplicativo. Isso significa que não foi possível testar as permissões que você solicitou no envio.

Como esses problemas impedem que analisemos o funcionamento do aplicativo no Facebook, não podemos fornecer comentários detalhados sobre como o aplicativo usa a funcionalidade do Facebook que você enviou para análise. Por isso, o resultado é a rejeição por “problemas gerais” e comentários específicos para cada plataforma.

Se você receber uma rejeição por “problemas gerais”, leia todo o comentário atentamente. Cada plataforma recebe feedback individual que explica os problemas encontrados na análise.

A resposta da análise incluirá uma explicação clara do motivo por que seu aplicativo não foi aprovado, além das próximas etapas que você deverá seguir. Queremos que você passe pelo processo o mais rápido possível; portanto, não deixe de ler os comentários com atenção. Depois de fazer as alterações necessárias, você poderá fazer um novo envio para análise.

Se a permissão solicitada for usada pelo aplicativo de uma forma não aprovada, o comentário deverá explicar o motivo. Nesse caso, você não deve fazer um novo envio para análise.

Para ser aprovado, seu aplicativo precisa atender aos nossos requisitos de qualificação. Além disso, ele precisa usar o Login do Facebook ou ter um aplicativo Facebook Canvas para estar qualificado para a Central de Aplicativos do Facebook.

Os aplicativos qualificados para estar na lista da Central de Aplicativos são:

Seus ativos de texto e imagens promocionais também precisam estar de acordo com nossas diretrizes.

Se você usa o diálogo de compartilhamento ou qualquer outro Plugin Social para publicar conteúdo no Facebook, não será necessário fazer um envio para análise. Se ainda estiver com dúvidas, veja mais informações em nossa documentação geral sobre a análise.

Incentivar as pessoas a usar plugins sociais ou a curtir uma página é proibido pela Política da Plataforma 4.5. Isso inclui a oferta de recompensas ou de acesso a aplicativos ou a conteúdo de aplicativos com base no fato de a pessoa ter ou não curtido a página. User_likes não serão aprovados para esse fim.

Para garantir conexões de qualidade e auxiliar empresas a alcançar o público relevante, queremos que as pessoas curtam as Páginas porque desejam se conectar e saber mais sobre a empresa, e não devido a incentivos artificiais. Acreditamos que essa política beneficia tanto as pessoas quanto os anunciantes.

Nossa equipe de análise talvez precise de credenciais de login adicionais do seu aplicativo para concluir a análise.

Se o aplicativo solicitar um login secundário antes ou depois do Login do Facebook, lembre-se de fornecer o nome de usuário e a senha correspondentes. Isso pode incluir credenciais de login para um servidor de teste ou de demonstração, um login secundário para seu aplicativo ou um fluxo de registro de email.

Os aplicativos hospedados em servidores de preparação ou de desenvolvimento podem exigir um login adicional para acessar seu servidor. Forneça todas as credenciais de login necessárias para isso.

Se ainda não tiver certeza de quais credenciais estão faltando, inclua no próximo envio um vídeo mostrando a opção de Login do Facebook e todas as integrações com o Facebook que você está enviando para análise.

Para aprovar o envio de seu aplicativo, nossa equipe de análise precisará entrar no aplicativo e verificar todas as integrações com o Facebook.

Se o revisor não tiver conseguido carregar ou usar o aplicativo, verifique se:

  • a URL do aplicativo está configurada para acesso público e não como localhost;
  • você forneceu o nome de usuário e a senha necessários para acessar o site de preparação ou de desenvolvimento;
  • os certificados de segurança do site estão atualizados e não geram erros para novos usuários;
  • você consegue entrar e usar seu aplicativo como um novo usuário de teste;
  • os itens enviados para análise estão compilados e funcionando no aplicativo.

Se o aplicativo for rejeitado de novo pelo mesmo motivo, atualize as seções Instruções de análise e Adicionar notas para solicitar que o revisor forneça explicações mais claras.

Um screencast é uma excelente maneira de nos guiar pelo aplicativo e nos mostrar como você está usando as permissões solicitadas. Veja algumas das melhores práticas e recursos de terceiros para a criação de um screencast.

O vídeo deve mostrar como o aplicativo usa cada permissão solicitada. Se você solicitar publish_actions, o vídeo também deverá mostrar como o conteúdo do seu aplicativo é criado e compartilhado no Facebook.

O ID do aplicativo do Facebook criado para o seu Jogo Instantâneo não pode ser usado em outras plataformas. Para obter mais informações, consulte nossa documentação.

Nossa equipe de análise usará as instruções fornecidas por você para testar as integrações de seu aplicativo ao Facebook.

Se você entender que o revisor rejeitou seu aplicativo indevidamente, envie novamente para análise com instruções atualizadas que contenham mais informações para o revisor.

O processo de análise é a melhor maneira de se comunicar com o revisor, com a atualização de suas notas para abordar os comentários recebidos.

Nossa equipe de revisores utiliza vários usuários de teste para analisar envios. Nem sempre trabalhamos com o usuário de teste fornecido por você. Caso seu envio precise ser analisado com um usuário de teste específico, inclua essa informação nas instruções de análise.

Se fornecer um, verifique se você criou o usuário de teste corretamente e o anexou ao envio.

Não. Quando uma permissão tiver sido aprovada, você poderá usá-la em qualquer versão do seu aplicativo e em qualquer plataforma.

Se você expandir e desenvolver seu aplicativo em uma nova plataforma, ele não precisará ser enviado para uma segunda análise. Só será necessária uma segunda análise quando você quiser solicitar uma nova permissão, por exemplo, ao adicionar um novo recurso ao aplicativo. A alteração e o envio dos detalhes do aplicativo ou ações de Open Graph não afetarão as permissões que já foram aprovadas.

Se o aplicativo for um jogo e estiver presente no Facebook Canvas

Você pode convidar novos jogadores para seu jogo usando o seguinte:

  • Diálogo de solicitações. Ao usar o diálogo de solicitações, você poderá definir “filters=app_non_users” para filtrar o diálogo e exibir somente as pessoas que não usam seu aplicativo. Se o aplicativo estiver presente no Canvas, você também poderá usar o diálogo de solicitações no iOS e no Android.
  • API Amigos Convidáveis. Caso seu aplicativo seja um jogo e você queira criar o próprio seletor de amigos, use a API Amigos Convidáveis, que retorna uma lista classificada dos amigos da pessoa que não usam o aplicativo. Depois que alguns amigos forem selecionados para convidar, você poderá passar os tokens retornados pela API Amigos Convidáveis ao campo Para do diálogo de solicitações e, assim, possibilitar o envio de um convite a esses amigos.

Caso seu aplicativo não esteja presente no Facebook Canvas

Use o diálogo de mensagens no iOS e no Android ou o diálogo de envio na web. Esses produtos permitem que uma pessoa envie uma mensagem diretamente aos amigos contendo um link para seu aplicativo.

Esse tipo de mensagem é um ótimo canal para comunicação direta com um número pequeno de pessoas. O diálogo de mensagens e o de envio incluem a digitação antecipada, que permite à pessoa selecionar com facilidade vários amigos para enviar o convite.

Atualmente, a análise não é necessária se o aplicativo é usado apenas por usuários que têm uma função no aplicativo e que publicam somente nas próprias linhas do tempo ou páginas. No entanto, desde 1º de agosto de 2018, os aplicativos não podem mais fazer publicações na linha do tempo dos usuários, e nenhum aplicativo que permite que usuários façam publicações em grupos ou páginas deve ser submetido à análise do aplicativo.

Nossa equipe de análise efetivamente testa como o aplicativo usa cada permissão em cada plataforma listada por você na seção Configurações do seu aplicativo. O revisor confirmará que a integração com o Login do Facebook funciona corretamente e que cada permissão solicitada está de acordo com nossos princípios e diretrizes de utilitários, além de oferecer uma experiência aprimorada ao usuário.

Consulte nossos princípios e diretrizes de utilitários para saber mais.

Antes de aprovar sua solicitação de user_likes, o revisor precisa confirmar que o aplicativo oferece aos usuários uma experiência única baseada nas informações das curtidas deles. Para isso, nossa equipe de análise testa o aplicativo com vários usuários de teste, cada um com um conjunto diferente de curtidas e interesses.

Ao enviar uma solicitação de user_likes, forneça instruções detalhadas que incluam:

  • uma explicação clara do motivo por que está solicitando user_likes e como isso aprimora a experiência do usuário do seu aplicativo;
  • uma lista de Páginas de exemplo para que nosso revisor possa curtir e verificar o uso de user_likes. Forneça links diretos para as Páginas que nosso revisor deve curtir antes de testar seu aplicativo.

Se você usar user_likes como parte de um algoritmo, é importante permitir que o revisor veja o resultado do algoritmo e como ele influencia o conteúdo exibido para as pessoas.

Em alguns casos, pode ser que o revisor precise reproduzir um comportamento ou uma experiência disponível apenas para um usuário de teste específico. Se for o caso, você pode adicionar esse usuário ao seu envio na página Análise do aplicativo. Nos itens da seção Análise, você verá a seção Usuário de teste (opcional) que permite digitar o nome do usuário que deverá ser usado na análise.

Os únicos usuários de teste disponíveis na seção são os listados como Usuários de teste na seção Funções do seu aplicativo. Não compartilhe as credenciais de login do Facebook de usuários nas instruções de análise.

Saiba mais sobre como criar um usuário de teste.

Não, a análise não é necessária para executar anúncios de instalação de aplicativo para celular. Você precisará apenas de um aplicativo que esteja ativo na iTunes App Store ou na Google Play Store. Siga as orientações do nosso guia para criar anúncios de instalação de aplicativo para celular.

Você precisa explicar exatamente como testar cada permissão ou recurso do seu aplicativo para que possamos ter a certeza de que ele funciona e está de acordo com nossas políticas. Não poderemos aprovar seu aplicativo se não pudermos testar completamente como ele se integra ao Facebook. Se você der instruções detalhadas, a probabilidade de ter que enviá-lo novamente para análise será menor.

Para cada permissão solicitada, liste as instruções passo a passo para reprodução. Todas as instruções devem estar em inglês.

Suas instruções não devem:

  • fazer referência a instruções de outros envios ou de outra documentação;
  • resumir o que seu aplicativo faz em vez de dar instruções;
  • fornecer detalhes técnicos sobre o funcionamento da API.

Este é um bom exemplo de instruções passo a passo:

  1. Pressione o botão Configurações no menu à esquerda.
  2. Selecione Entrar com o Facebook.
  3. Conclua a terceira etapa.
  4. Conclua a quarta etapa.

Se ainda não tiver certeza do que deve incluir, veja mais exemplos em nossa seção de exemplos para análise do aplicativo.

Devido a alterações no processo de análise e ao alto volume de envios esperados, poderá levar várias semanas até a conclusão da análise dos aplicativos enviados.

Forneça todas as informações possíveis para auxiliar o revisor, inclusive capturas de tela claras, instruções passo a passo detalhadas e uma gravação de screencast de seu aplicativo e da integração com o Facebook.

Os aplicativos que usam produtos de compartilhamento mediado, como plugins de redes sociais, diálogo de compartilhamento e planilhas de compartilhamento, ou um subconjunto de Login do Facebook não precisam ser analisados pelo Facebook. Se quiser saber mais sobre os requisitos para análise, consulte nossa documentação Análise do aplicativo.

Analisamos seu aplicativo para assegurar uma experiência de alta qualidade no Facebook. Em geral, as pessoas precisam estar cientes de que estão se conectando e publicando no Facebook. Elas devem ser capazes de controlar as informações que compartilham com seu aplicativo ou no Facebook.

Observação: as pessoas que estão na lista da guia Funções do seu aplicativo terão acesso a permissões estendidas sem passar pela análise (por exemplo, user_posts). Porém, quando o aplicativo for publicado, ele deverá ser submetido à análise do aplicativo para acessar informações mesmo para as pessoas com funções no aplicativo.

Todos os recursos do aplicativo devem estar disponíveis quando ele estiver no modo de desenvolvimento. No entanto, você só poderá acessar os seus dados, os dados do seu usuário de teste ou das suas páginas. Se desejar publicar seu aplicativo, mesmo que você seja o único usuário, ele deverá ser submetido à análise do aplicativo.

Gerenciador de Negócios

Se você solicitar uma lista de Páginas de uma empresa via /BUSINESS_ID/pages, nem todos os campos da Página poderão ser solicitados e a API poderá responder com um erro: (#100) Unknown fields: <FIELD_NAME>.

Isso acontece porque esse ponto de extremidade não retorna um objeto da Página como outros pontos de extremidade semelhantes, além de incluir solicitações pendentes que não foram aprovadas, por exemplo. Como tal, não é possível usar a expansão de campo para retornar campos da Página.

Você pode usar <BUSINESS_ID>/owned_pages ou <BUSINESS_ID>/client_pages - ambos os pontos de extremidade devem retornar objetos da Página e oferecer suporte à expansão de campo.

Para enviar uma solicitação para uma Página verificada, um gerente de contas do Facebook deve configurar a empresa para permitir a realização dessas solicitações para a organização associada com a Página. As empresas que não tiverem um gerente de contas do Facebook não poderão emitir essas solicitações.

Verificação de Uso de Dados

Na Verificação de Uso de Dados, o administrador de aplicativo precisa:
1. Verificar as permissões e recursos aprovados do aplicativo
2. Certificar que o aplicativo está em conformidade com o uso permitido
3. Certificar a conformidade com os Termos da Plataforma e as Políticas de Desenvolvedores do Facebook, assim como com todos os outros termos e políticas aplicáveis

A Verificação de Uso de Dados e a análise do aplicativo são duas medidas de integridade da plataforma distintas, embora relacionadas. A análise do aplicativo é um processo preventivo que vincula o acesso a determinadas permissões da Plataforma do Facebook, exigindo que os desenvolvedores enviem um questionário para justificar o acesso à plataforma, que é analisado manualmente por nossa equipe de operações de desenvolvedores. Depois que o acesso à plataforma é concedido, a Verificação de Uso de Dados é um processo anual que exige que os desenvolvedores certifiquem que o uso continuado dos dados do Facebook está em conformidade com nossos Termos da Plataforma e nossas Políticas de Desenvolvedores.

Você deve fazer a certificação de todos os aplicativos que sua empresa gerencia.

Os desenvolvedores que gerenciam vários aplicativos terão a opção de concluir a Verificação de Uso de Dados para esses vários aplicativos de uma só vez. É possível acessar esse fluxo na página “Meus aplicativos” no Painel de Aplicativos. Neste ponto, você verá todos os aplicativos dos quais é administrador, poderá filtrar um subconjunto (por exemplo, apenas os que exigem a Verificação de Uso de Dados), bem como concluir a Verificação de Uso de Dados.

Você precisará concluir a verificação de cada aplicativo que gerencia (e cada aplicativo pode ter várias permissões). Você pode certificar os aplicativos individualmente e definir as prioridades como desejar, desde que conclua o processo antes do prazo definido para cada aplicativo.

Você será solicitado a fazer a certificação de todas as permissões às quais tem acesso. No entanto, se você perceber que não precisa mais acessar determinadas permissões, poderá removê-las e, assim, não precisará mais certificá-las.

O modo ao vivo e o modo de desenvolvimento são dois modos do aplicativo que afetam a funcionalidade dele e a Verificação de Uso de Dados. O modo de desenvolvimento é usado normalmente para testar, explorar permissões/produtos da API e concluir a análise do aplicativo; os aplicativos no modo de desenvolvimento não podem reunir dados de usuários. O modo ao vivo é usado em cenários de produção e não restringe o acesso a permissões/dados aprovados para os aplicativos na análise do aplicativo. Somente os aplicativos no modo ao vivo devem passar pela Verificação de Uso de Dados.

Se você, por alguma razão, não conseguir acessar um aplicativo e precisar obter novamente o status de administrador, clique aqui.

De forma geral, tentamos agrupar os prazos dos aplicativos que tenham o mesmo administrador. Assim, seus aplicativos deverão ter o mesmo prazo. No entanto, pode haver exceções que, como resultado, exigem que alguns administradores concluam o processo em prazos variáveis; por exemplo, se você criar um aplicativo depois que os outros já passaram pela Verificação de Uso de Dados, ele terá um prazo anual diferente.

Você pode ver todos os aplicativos que devem passar pela Verificação de Uso de Dados acessando a página "Meus aplicativos" no Painel de Aplicativos. Neste ponto, você pode ver todos os aplicativos que gerencia e filtrar aqueles que devem passar pela Verificação de Uso de Dados.

O processo deve ser concluído pelo administrador do aplicativo. Para conferir quem é o administrador do seu aplicativo, entre no Painel de Aplicativos e clique em “Funções” no lado esquerdo da página. Os administradores do aplicativo devem estar em uma posição de autoridade para agir em nome de sua organização.

Qualquer administrador do aplicativo pode realizar a certificação. Se um aplicativo tiver vários administradores, somente um deles precisa fazer a certificação.

Você terá 60 dias a partir do início do processo (quando você receber o primeiro alerta de desenvolvedor) até o prazo final.

Depois do prazo final, começaremos a revogar o acesso à plataforma ao limitar as chamadas de API durante o mês seguinte ao prazo. Neste período, você poderá acessar o Painel de Aplicativos e concluir a Verificação de Uso de Dados para seu aplicativo ser posto em um estado de conformidade e restaurar totalmente o acesso à plataforma. No entanto, um mês após o prazo, revogaremos totalmente o acesso à plataforma.

Você ainda poderá retornar ao Painel de Aplicativos para concluir a Verificação de Uso de Dados e restaurar o acesso. No entanto, realizamos “coletas periódicas de permissão” de aplicativos inativos, ou seja, depois de um determinado período de inatividade, suas permissões podem ser permanentemente removidas e você precisará solicitar a análise do aplicativo para recuperar o acesso. Recomendamos que você conclua a Verificação de Uso de Dados antes que o prazo termine para evitar esse cenário.

A Verificação de Uso de Dados exibirá todas as permissões às quais seu aplicativo tem acesso, quer estejam em uso ativo ou não. É recomendável aproveitar essa oportunidade para fazer uma auditoria de sua integração, para compreender melhor as capacidades de seu aplicativo e remover o acesso às permissões que não são necessárias.

Em alguns casos, exibiremos as informações de uso da API diretamente no fluxo da Verificação de Uso de Dados. Outra forma para ver os níveis de uso de cada permissão é na seção “Permissões e recursos” do Painel de Aplicativos. Quando entrar, clique em “Análise do aplicativo” no lado esquerdo da página e selecione “Permissões e recursos” no menu suspenso. Você verá a coluna “Chamadas de API”, que terá uma marca verde se os registros mostrarem que você tem usado ativamente a permissão. Lembre-se de que é só uma estimativa. Você deve consultar sua equipe de desenvolvimento para verificar se a permissão é necessária para a integração.

Estamos exigindo que os desenvolvedores realizem a certificação dessas permissões “básicas” concedidas automaticamente porque elas são muito usadas e fornecem acesso a dados de usuários. No entanto, caso não tenha usado esses dados, você ainda deve se sentir confortável em concluir esse processo, já que a certificação indica que qualquer uso da permissão está em conformidade, o que inclui o não uso.

Primeiro, você deve remover a permissão usando o Painel de Aplicativos (clique em “Minhas permissões e recursos” no menu suspenso à esquerda abaixo de “Análise do aplicativo”). Depois, você pode certificar as permissões e recursos restantes que ainda está usando.

No entanto, algumas permissões concedidas automaticamente não podem ser removidas, e talvez você seja solicitado a certificá-las. Caso não tenha usado esses dados, você ainda deve se sentir confortável em concluir esse processo, já que a certificação indica que qualquer uso da permissão está em conformidade, o que inclui o não uso.

Não. Depois que você remove a permissão no Painel de Aplicativos, pode atualizar a página Verificação de Uso de Dados e a permissão removida deve desaparecer.

Você tem que concluir a Verificação de Uso de Dados de todas as permissões às quais seu aplicativo tem acesso.

Conduziremos uma implementação em fases da Verificação de Uso de Dados. Assim, embora se espere que você conclua o processo nos próximos meses, o prazo específico sofrerá variações. Verifique se suas informações de contato estão atualizadas no Painel de Aplicativos e consulte seus alertas de desenvolvedor para obter detalhes sobre prazos.

Contas e serviços de desenvolvedor

In order to comply with certain legal obligations, Meta’s developer services may not be available in all locations, including countries and regions currently subject to U.S. sanctions prohibitions.

Registration reviews may take longer and you may be unable to access our service during that time. Please try again in a few days. For more information, please refer to Meta’s Terms of Service.

We are currently reviewing your registration details. This takes 24 to 48 hours. Once completed and approved, you may be able to login and complete your registration.

Ferramentas para desenvolvedores

Não é possível excluir imagens de captura de tela ou banners que já foram aprovadas para a Central de Aplicativos. Para substituir essas imagens por outras, clique em "Editar" na captura de tela ou no banner e escolha uma imagem substituta.

Verifique se você consegue ver a mensagem de erro sem fazer uma solicitação de fotos de usuário e se a mensagem de erro inicial estava visível. Em seguida, faça a solicitação à API me/photos e volte para verificar se a mensagem de erro ainda está visível ou se não está mais visível. Ao fazer o teste da chamada me/photos, certifique-se de usar o aplicativo em questão e de que obtém o token de acesso correto, que exige a permissão user_photos, e isso deverá resolver o problema!

O objetivo dessa verificação é assegurar que os desenvolvedores testaram completamente o recurso no aplicativo, antes de nos solicitar a mesma permissão. O teste no aplicativo de teste não garante um comportamento estável do mesmo no aplicativo principal. Precisamos que você faça a solicitação de teste no seu aplicativo principal, para termos certeza de que você o veja funcionando conforme o esperado, antes de liberá-lo para o público externo. Siga as etapas fornecidas sobre como fazer uma solicitação manual e como verificar que você não precisa mais desse aviso no seu painel.

A migração 'Segurança de URL de postagem de fluxo' impede o aplicativo de publicar URLs que não apontem para um domínio do qual não seja titular. Não use essa opção se o seu aplicativo publicar links para outros sites.

Esse recurso do painel foi removido. Você deverá usar o ponto de extremidade '/{app-id}/accounts/test-users/' para associar o usuário de teste a um aplicativo. Veja mais informações aqui.

Esse é um comportamento intencional e está documentado aqui - https://developers.facebook.com/docs/apps/test-users#rules - Os usuários de testes não podem tornar-se fãs de uma Página do Facebook pública ou criar conteúdo na mesma, como escrever no mural da Página. No entanto, um usuário de teste pode ver e interagir com qualquer guia de aplicativo na Página associada ao aplicativo que os criou.

Login do Facebook

Esse comportamento é intencional. O diálogo Entrar utiliza uma largura fixa e não se ajustará a telas maiores.

Este comportamento é intencional. É de responsabilidade do desenvolvedor definir o 'redirect_uri' adequado com base no dispositivo do usuário e, desta forma, se o usuário estiver em um dispositivo móvel, o 'redirect_uri' deverá ser a URL do site móvel.

Este é o comportamento pretendido, porque impede possíveis problemas de vulnerabilidade de segurança. Alguns navegadores anexam o fragmento de hash de uma URL no fim de outra URL para a qual eles foram redirecionados (se essa nova URL não tiver ela própria um fragmento de hash).

Por exemplo, se o exemplo1.com retornar um redirecionamento para o exemplo2.com, então um navegador que estiver indo para o exemplo1.com#abc irá para o exemplo2.com#abc, e o conteúdo do fragmento do hash do exemplo1.com ficará acessível ao script do exemplo2.com.

Como é possível fazer com que um fluxo de autenticação seja redirecionado para outro, seria possível ter dados de autenticação sensíveis de um aplicativo acessível ao outro. Isso é mitigado por meio da anexação de um novo fragmento de hash à URL de redirecionamento para impedir esse comportamento do navegador. Se a estética, ou o comportamento no lado do cliente, da URL resultante for um problema, será possível usar window.location.hash (ou mesmo seu próprio redirecionamento no lado do servidor) para remover os caracteres problemáticos.

Graph API

Test apps created from Business apps will have Standard Access for all permissions and features.

No. For a given permission, Business apps have either None, Standard, or Advanced Access.

Yes. For Business apps, the Advanced Access level includes access to all data within the Standard Access level.

Para compartilhar um URL, a imagem associada precisa ter pelo menos 200 x 200 pixels. Se esse não for o caso, você receberá um erro semelhante a este "A og:image fornecida não é grande o bastante. Use imagens com pelo menos 200 x 200 pixels".

Para escolher uma imagem para uma URL, analisamos primeiro a tag 'og:image' para saber se existe e se está acima da exigência de 200 x 200 pixels. Se 'og:image' não existir, escolheremos a primeira imagem que encontrarmos na página da Web.

Se você receber o erro e acreditar que a imagem é maior do que 200 x 200 pixels, verifique se definiu corretamente a tag 'og:image' , já que a causa mais provável é que estamos carregando uma imagem incorreta do seu site.

Nós alteramos o comportamento do plugin de compartilhamento para ficar coerente com os outros plugins e recursos da nossa plataforma.

O compartilhador não aceitará mais parâmetros personalizados e o Facebook puxará as informações que estiverem sendo exibidas na prévia, da mesma forma que seria exibida no Facebook como uma publicação, a partir da metatags OG da URL.

Não, não é possível substituir 'caption' em uma URL compartilhada, mas somente 'title' e 'description'.

Um aplicativo não pode carregar nos álbuns criados por outros aplicativos.

Em alguns casos, há álbuns que não estão associados com qualquer aplicativo (álbum das fotos do mural). Sugerimos verificar o campo can_upload. Se o campo can_upload retornar falso, significa que os usuários não podem aplicar fotos diretamente nesse álbum por meio da visualização do álbum nos perfis.

A chamada para ação será exibida sob o ícone 'repetir' após a conclusão do vídeo.

Os GIFs devem ter menos de 8 MB para que possam ser reproduzidos no Facebook.

A criação de comentários em publicações não publicadas por meio da API não é suportada no momento.

As publicações de vídeo criadas em linha não são exibidas no ponto de extremidade promotable_posts porque já são promovidas. Uma publicação de vídeo em linha é uma publicação que foi criada como parte da criação de um anúncio e, portanto, não pode ser impulsionada em separado.

Por isso, espera-se que a publicação criada em linha não seja exibida no ponto de extremidade /promotable_posts.

Isso pode ocorrer se você estiver usando um token de acesso à Página em que o usuário associado ao token estiver listado como um analista nas funções da Página, em Configurações.

Quando é feita uma solicitação de dados com a Graph API, diversas regras de privacidade se aplicam, o que faz com que certos dados não sejam retornados, embora seja possível consultá-los no site. Isso pode depender de diversos fatores, tais como configurações de privacidade do usuário, permissões do nível do aplicativo, etc. Isso significa que os dados retornados pela API não contêm necessariamente todos os dados vistos no site.

Se a publicação tiver sido criada com a 'object_story_spec' da API de anúncios, essas publicações serão categorizadas como em linha. Para ver tais publicações, será preciso usar a borda /{page-id}/promotable_posts e usar o modificador 'is_inline' na v2.3 e anterior, e incluir 'include_inline' na v2.4 e posterior. Leia mais aqui.

O campo de compartilhamentos retornará se a publicação for compartilhada mais de dez vezes. Se uma publicação tiver sido compartilhada menos de dez vezes, poderemos omitir esse campo ou tentar retornar um número.

Informe-se mais sobre esse ponto de extremidade aqui: https://developers.facebook.com/docs/graph-api/reference/v2.4/post.

Isso era um valor antigo utilizado em nossa infraestrutura antiga, que mantivemos por motivos de compatibilidade reversa quando passamos para a nova.

Isso ocorrerá com publicações históricas mas não com as recentes.

Esse é o funcionamento pretendido. Não há conexão entre a publicação e as fotos da publicação. Retornamos somente a primeira imagem que foi carregada dentro da publicação.

O campo 'application' não será retornado se a publicação for atribuída ao site do Facebook ou ao aplicativo móvel. Isso está alinhado com o site, que não exibe atribuição para esses tipos de publicações.

O campo "privacy" de uma publicação conterá informações sobre a visibilidade dessa publicação no Facebook, mas quando a Publicação da Página for direcionada ou limitada para ser visível somente para um público específico, as informações do campo "privacy" não exibirão todas as opções de direcionamento selecionadas.

Para ver os detalhes completos de como a publicação é direcionada ou limitada, consulte o campo 'targeting' (direcionamento) e o campo 'feed_targeting' (para direcionamento do Feed de Notícias). Consulte a documentação sobre Publicações para ver mais informações sobre quais campos estão disponíveis.

O valor de comment_count retornado para uma publicação pode incluir comentários que foram ocultados ou excluídos. O número de comentários visíveis em uma publicação nunca será superior a comment_count.

Não é possível substituir a 'caption' de uma URL compartilhada. Somente é possível substituir o 'title' (título) e a 'description' (descrição) dessa URL.

Para ver mais informações e os campos que podem ser publicados por meio da Graph API, acesse a documentação do /feed aqui: https://developers.facebook.com/docs/graph-api/reference/v2.3/page/feed#publish

Isso faz parte do projeto. Está de acordo com a maneira como o conteúdo gerado pelo aplicativo do Facebook (móvel ou Web) é exibido (sem atribuição ao próprio Facebook).

Fizemos atualizações na maneira como os dados de stream e de publicações são lidos e apresentados por meio da API.

Se você estiver encontrando problemas na leitura das publicações da API e acreditar que não está funcionando como documentado, verifique o seguinte:

  • o token de acesso que você está usando tem as permissões adequadas para acessar as publicações em que você está interessado.
  • Todas as chamadas à API que você fizer para ler publicações devem usar a 'id' retornada para você em uma chamada anterior. Não crie números de identificação manualmente baseados na Página, no usuário ou em outras identificações.

As fotos carregadas por meio do Instagram são publicadas como ações de Open Graph e exigem as permissões para Open Graph apropriadas para serem lidas pela Graph API.

No caso das fotos do Instagram, a permissão necessária é "user_actions:instapp", já que "instapp" é o namespace do aplicativo para o Instagram.

As ações de Open Graph não aparecem na conexão /feed, mas se uma foto for carregada como uma ação de Open Graph, poderá ser acessada com as permissões apropriadas por meio da conexão de álbuns ou a conexão /photos do usuário, conforme o caso.

Há mais informações sobre as permissões para Open Graph disponíveis aqui.

Isso é intencional. Nosso sistema retorna a mensagem de erro acima com objetos que foram excluídos ou estão invisíveis para verificações de privacidade/permissão.

Esse comportamento é esperado e essa forma de paginação não é compatível com os comentários.

O campo total_count para o parâmetro de resumo do ponto de extremidade /{user-id}/accounts pode retornar um número maior do que o antecipado. Isso ocorre porque total_count inclui qualquer página excluída onde o usuário também era um administrador.

No entanto, os dados retornados pelo próprio ponto de extremidade incluirão apenas páginas que não foram excluídas.

O ponto de extremidade /usuário/curtidas mudou da paginação baseada em tempo (utilizando os parâmetros 'since' e 'until') para a paginação baseada em cursor (utilizando os parâmetros 'before' e 'after').

Leia mais sobre essas diferenças aqui: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#paging

Com o lançamento das user-ids no escopo do aplicativo, fizemos alterações na maneira como o ponto de extremidade retorna dados.

Como a v1.0 está obsoleta, nos concentraremos na v2.x aqui. /v2.0/{id} pode retornar https://www.facebook.com/{id} ou pode retornar https://www.facebook.com/app_scoped_user_id/{id}.

Isso é intencional. Esse erro significa que o token de acesso que você está tentando estender não consegue acessar o ID do aplicativo que está tentando estender esse token.

O motivo mais provável para isso é que seu aplicativo está com restrições demográficas aplicadas e detectamos que o usuário cujo token você está tentando estender não atende a essas restrições (ou não atende mais às restrições, ele pode ter se deslocado para outro local ou talvez tenhamos detectado uma localização mais precisa dele agora).

A outra razão mais provável é que não podemos confirmar se o usuário atende às exigências (por exemplo, não conhecemos sua localização) e as restrições do seu aplicativo não permitem que esses usuários acessem o aplicativo.

Desde julho de 2013 não é mais possível usar o ponto de extremidade de pesquisa utilizando um email no tipo de pesquisa do usuário.

Além disso, houve diversas alterações na Graph API com o lançamento da v2.0. A possibilidade de pesquisar em publicações públicas e por palavras-chave não está disponível na v2.0.

Consulte log de alterações para ver mais detalhes.

Todos os aplicativos criados depois do dia 30 de abril de 2014 utilizam a versão 2 ou posterior da API, que retorna os amigos do seu aplicativo com o ponto de extremidade /me/friends, como você afirmou. Além disso, todos os números de identificação de usuário são IDs no escopo do aplicativo, que são exclusivos do seu aplicativo específico, além de permanentes.

Saiba mais sobre todos os novos recursos e as modificações que foram introduzidas como parte da v2.0.

A documentação do campo email do User objeto esclarece o comportamento esperado aqui, que é: "este campo não será retornado se não houver um endereço de email válido disponível".

Há diversas circunstâncias em que você poderá achar que um usuário deverá ter um endereço de email retornado, mas não terá. Por motivos de privacidade e segurança, não é possível elaborar um motivo preciso pelo qual o endereço de email de qualquer usuário específico não será retornado.

Alguns motivos possíveis:

  • Não há um endereço de email na conta
  • Não há um endereço de email confirmado na conta
  • Não há um endereço de email verificado na conta
  • O usuário inseriu um ponto de verificação de segurança que exigiu que confirmasse novamente o endereço de email, pois ainda não o havia feito
  • O endereço do email do usuário não está acessível
Você precisará também da permissão de 'email' estendida , mesmo para usuários que tiverem um endereço de email válido, confirmado e acessível no registro.

Essas publicações não podem ser buscadas por meio da API porque, em tais publicações, um conteúdo de usuário está sendo compartilhado novamente em uma Página, e esse usuário não autorizou o aplicativo a ver seu conteúdo.

As publicações de usuários compartilhadas na Linha do Tempo da Página não ficarão disponíveis por meio da API se o usuário estiver com a permissão básica desativada para o tipo de conteúdo da publicação.

Como solução alternativa para ver as publicações de fotos dos fãs ausentes, você pode buscar os álbuns da Página utilizando o token de acesso à Página. As fotos deverão estar no álbum Fotos da linha do tempo

Muito embora uma publicação seja pública e mencione a Página que está sendo solicitada, seu aplicativo não pode ver essas publicações sem a permissão read_stream do proprietário dessas publicações. Isso significa que o ponto de extremidade {page_id}/tagged não retorna todas as publicações.

Leia mais sobre o assunto na documentação sobre o Feed da Página.

Há casos em que um aplicativo específico (ou qualquer aplicativo) não será capaz de obter qualquer informação sobre o usuário do Facebook, devido às configurações de privacidade desse usuário. Isso inclui o acesso a publicações feitas por esse usuário em um contexto no qual seu aplicativo espera conseguir ver a publicação (por exemplo, gerenciamento da Página)

Por exemplo, se um usuário tiver bloqueado o aplicativo ou tiver desativado o acesso de todos os aplicativos da plataforma às suas informações por meio da API.

Com o lançamento da v2.1 da Graph API, essa funcionalidade foi removida. Para os aplicativos criados antes de 7 de agosto de 2014, esse campo não está mais presente em signed_request.

Para os aplicativos criados antes dessa data a propriedade liked sempre retornará true independentemente de a pessoa ter curtido a Página.

Use os links paging.next e paging.previous retornados na resposta diretamente para receber as demais páginas de resultado. A utilização dos links fornecidos garantirá que seu aplicativo não terá problemas se o formato dos links de paginação se alterarem no futuro.

Assim como a maioria dos itens da API, não deve ser uma associação exata e direta com os recursos e as funcionalidades do site principal do Facebook. O que a IU das Informações de Páginas classifica como alcance orgânico difere bastante e isso é calculado de maneira diferente do alcance orgânico por meio da API.

Por exemplo, o valor 'organic' na IU das Informações da Página corresponde ao valor 'unpaid' da métrica page_impressions_by_paid_non_paid_unique disponível por meio da Graph API.

Estamos analisando como vamos alinhar as duas, mas isso poderá demorar um pouco.

Esse erro indica que o usuário associado com o token de acesso não consegue ver essa Página por motivos de privacidade. Por exemplo, a Página pode não estar publicada e o usuário pode também não ser um administrador válido da Página.

Normalmente, esse erro ocorre se você tentar ler informações de uma Página muito ativa. Isso pode ser considerado se você reduzir o intervalo de tempo pelo qual você solicitará informações utilizando os campos 'since' e 'until'.

Esse é o comportamento esperado para os aplicativos de teste no modo de desenvolvimento. Depois que o aplicativo for publicado, funcionará como o esperado.

O problema (bug) relacionado a essa limitação de design pode ser consultado aqui

Somente o administrador, o editor ou o moderador podem ler e enviar mensagens à Página. Pessoas com outras funções, como anunciante e analista, não podem ler as conversas da Página.

Acesse esta página de ajuda para saber mais sobre as diversas funções na Página: https://www.facebook.com/help/289207354498410.

As contagens totais de 'page_fans' e 'page_fans_country' nem sempre são iguais. Há muitos fatores que podem afetar o valor de 'page_fans_country'. Por exemplo, alguns fãs da página podem não ter definido seu país de residência em suas contas, ou alguns fãs podem ter uma configuração de privacidade que oculta o país de residência.

Para saber mais sobre as configurações de privacidade do Facebook, visite esta página na central de ajuda: https://www.facebook.com/help/445588775451827.

Algumas publicações de Páginas públicas são recompartilhamentos de conteúdo de usuário. Se o usuário que criou a publicação não tiver dado as permissões necessárias no aplicativo, o aplicativo não poderá acessar as publicações do usuário por meio da Graph API e, portanto, não poderá comentar nessas publicações.

As publicações criadas em linha como parte da criação do criativo do anúncio não podem ser impulsionadas em separado. Portanto, essas publicações também não serão exibidas em uma chamada ao ponto de extremidade /promotable_posts de uma Página.

Isso ocorrerá se você utilizar um aplicativo que ainda estiver no modo de desenvolvimento para agendar as publicações. Use um aplicativo que esteja ativo e o recurso deverá funcionar corretamente.

Lamentamos, mas atualmente não oferecemos suporte para a criação, a atualização ou a exclusão de fotos da capa por meio da API.

Para saber mais sobre a API da foto da capa, acesse https://developers.facebook.com/docs/graph-api/reference/cover-photo/#Creating

Esse é o funcionamento atual. Os administradores de páginas não podem publicar em páginas como eles próprios por meio da Graph API - esse recurso está disponível somente em http://www.facebook.com/ e nos nossos aplicativos móveis.

Não, não há como obter a lista inteira de pessoas que curtiram uma Página. Isso faz parte do projeto.

Verifique se você está utilizando um token de acesso à Página ao realizar ações em nome de uma Página. A mensagem de erro indica que você está utilizando um token de acesso de usuário em vez de um token de acesso à Página.

Saiba mais sobre os diversos tipos de tokens de acesso aqui: https://developers.facebook.com/docs/facebook-login/access-tokens

Não é possível. A fixação de publicações e a leitura de publicações fixadas está disponível somente por meio de produtos nativos do Facebook.

Se o espelhamento de comentários tiver sido ativado para a URL externa em algum ponto, as reações às publicações onde os comentários são espelhados serão registradas na própria URL e serão retornadas ao chamar {URL-id}/reactions>

Obter dados de mais de mil valores de detalhamento do ponto de extremidade /app_insights/app_event não é suportado no momento. Sugerimos usar a interface do usuário do Facebook Analytics para detalhar pontos de dados específicos, como países específicos, se você desejar detalhar os dados em categorias específicas.

É provável que você esteja chamando o ponto de extremidade muito rapidamente e antes que os dados sejam propagados para nossos servidores.

As chamadas de API devem ser realizadas depois de aguardar um ou dois segundos para permitir que as informações sejam propagadas para todos os nossos servidores.

A métrica 'page_fans_country' será geralmente um subconjunto da contagem de page_fans. Esta métrica cobre um detalhamento por país dos fãs da Página, desde que possamos determinar o país do usuário com precisão.

A métrica também inclui apenas os principais países (por contagem de fãs) dos fãs de uma Página, não todos os países onde há fãs. Para Páginas com fãs em vários países, os países menos populosos não serão incluídos nesta métrica.

A API não é compatível com o uso de paginação baseada em deslocamento (offset).

Em vez disso, você deve usar os links de “paginação” que são retornados no fim de cada resposta da Graph API, ou usar a paginação baseada no “cursor”, que é a preferida.

Veja mais informações detalhadas sobre como fazer a paginação corretamente com a Graph API aqui: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#paging

Há tokens de acesso de curta e longa duração. O token de curta duração destina-se a uma sessão breve e normalmente expira em algumas horas.

Você pode trocar um token de curta duração por um de longa duração, que terá um tempo de vida de cerca de 60 dias.

Leia sobre o assunto na Documentação sobre token de acesso.

Esse é o comportamento pretendido. A API de pesquisa respeita a privacidade no Facebook. Ela foi criada para o usuário cujo token de acesso você está utilizando, não é compatível com pesquisa por hashtag e não foi projetada para ter paridade com a mesma pesquisa que está sendo executada na pesquisa com digitação antecipada do Facebook.com.

Não oferecemos suporte explícito nem temos o objetivo de fazer com que a API de pesquisa retorne o mesmo volume de resultados específicos que as pesquisas do Facebook.com. E de um modo geral, as publicações genéricas retornadas por meio da API estão sujeitas a privacidade e a verificações de segurança mais restritivas do que as mesmas publicações no próprio Facebook.

Nosso sistema aplica limites de limites de taxa nas chamadas à API feitas por aplicativos. Para saber mais sobre os diversos limites e para impedir que seu aplicativo seja limitado, acesse https://developers.facebook.com/docs/marketing-api/api-rate-limiting

Instant Articles

Para incluir imagens GIF animadas no artigo, use um elemento <figure> que envolva um elemento <img> que, por sua vez, faça referência à URL da imagem GIF. É possível adicionar legendas e atribuições a imagens GIF, assim como você já faz com as outras imagens.

Consulte aqui a documentação para ver mais detalhes e exemplos.

É possível reutilizar a URL do feed em várias páginas, mas somente os artigos com URLs canônicas que correspondam aos domínios reivindicados pela página serão ingeridos.

Nossa recomendação é usar um feed RSS separado para cada página, contendo apenas os artigos que devem ser ingeridos por essa página.

É possível adicionar incorporações sociais compatíveis, incluindo vídeos, usando as Incorporações Sociais. No caso de outros players de vídeo de terceiros, é possível adicioná-los ao seu artigo como Incorporações Interativas.

É possível incorporar imagens e conteúdos interativos aos artigos usando <figure> com a classe op-interactive. A figura deve conter um <iframe> que contenha o conteúdo a ser incorporado.

Veja mais detalhes e exemplos aqui.

Especifique a legenda usando o elemento <figcaption>. Dentro da legenda, é possível adicionar a atribuição usando o elemento <cite>.

Veja mais detalhes e exemplos na documentação, aqui.

Quando o artigo está em modo Rascunho, ele só fica visível como Instant Article para os administradores da página. Depois que o artigo se torna Publicado, ele pode ser compartilhado por qualquer pessoa no Facebook e é exibido como Instant Article para todos.

Confira se você concedeu a permissão pages_manage_instant_articles para o aplicativo. Essa permissão é necessária para chamar os métodos de API a fim de ler e atualizar os Instant Articles da sua página.

Veja aqui mais informações sobre o uso da API.

Se o atributo dir="rtl" for usado para exibir um idioma lido da direita para a esquerda no seu artigo, pode ser que você esteja visualizando esse artigo em um aplicativo incompatível com tais idiomas em Instant Articles.

Confira se você está usando a versão mais recente do aplicativo. Estas são as versões mínimas de cada aplicativo que são compatíveis com idiomas lidos da direita para a esquerda:

  • Facebook para iOS: 52.0
  • Facebook para Android: 69.0
  • Gerenciador de Páginas para iOS: 44.0
No momento, o Gerenciador de Páginas para Android não é compatível com idiomas lidos da direita para a esquerda.

Confira se o atributo dir="rtl" foi definido na tag <body> do artigo. Esse atributo só deve ser definido no artigo quando o idioma deste for lido da direita para a esquerda.

Verifique se você configurou o atributo dir na tag do corpo do seu artigo. Para os idiomas lidos da direita para a esquerda, o atributo dir deve ser configurado como “rtl”.

A prévia do artigo no Feed de Notícias usa a imagem especificada na metatag og:image da versão do artigo para Web. Também é possível substituir a imagem por um vídeo adicionando a classe “fb-feed-cover” a qualquer vídeo do seu artigo. Veja mais informações sobre as prévias do Feed de Notícias aqui.

Quando a URL do artigo é compartilhada antes da publicação do Instant Article, ela redireciona para a versão Web móvel do artigo. Depois que o Instant Article for publicado, todos os compartilhamentos do link, incluindo aqueles feitos antes da publicação do artigo, serão automaticamente exibidos como Instant Article quando visualizados em dispositivos móveis.

No momento, a métrica “views” só considera os usuários de iOS. As visualizações em Android são contadas em separado pela métrica “android_views”.

Para saber mais sobre esse assunto, clique aqui.

Ainda não lançamos a compatibilidade com o feed de desenvolvimento para o Gerenciador de Páginas para Android. Para ver os artigos no Android, uma solução temporária seria adicionar os artigos ao feed de produção como rascunhos.

Para editar os Instant Articles, use a interface da Página. Para fazer isso, você pode acessar sua Página no navegador e clicar em Ferramentas de publicação > Instant Articles. Lá, é possível ver os artigos e editá-los. Veja mais informações aqui: https://developers.facebook.com/docs/instant-articles/publishing.

Atualmente, o tempo limite para download do feed é de 30 segundos.

Não, o link compartilhado deve ser a URL canônica do artigo. Caso a URL mude (por exemplo, devido ao acréscimo de parâmetros), ela será considerada uma URL diferente.

Todos os erros e alertas encontrados ao ingerir o feed RSS serão mostrados na guia Instant Articles da sua página Configurações. Também é possível ver alertas e erros de artigos isolados clicando em cada um deles na guia Instant Articles da página Ferramentas de publicação.

Confira se o seu feed RSS segue o formato documentado aqui.

A URL canônica do artigo também deve usar o domínio configurado para sua página ou um subdomínio dele. Caso você perceba que os novos artigos são ingeridos, mas as atualizações aos existentes não são feitas, confira se o carimbo de data/hora “op-modified” foi incrementado.

Para saber mais sobre esse assunto, clique aqui.

É comum que os artigos não sejam atualizados a partir do feed RSS porque o carimbo de data/hora op-modified do artigo no feed é idêntico à versão que buscamos da última vez. O artigo só é atualizado quando o carimbo de data/hora é posterior à última versão.

Além disso, também é necessário confirmar se a mesma URL canônica foi usada na versão atualizada do artigo.

Consulte aqui a documentação para saber mais sobre como buscamos os artigos do feed RSS.

Tentamos carregar e analisar totalmente seu feed RSS dentro de 10 segundos. Esse erro indica que não conseguimos.

Uma possível solução é incluir menos itens no seu feed RSS, por exemplo, apenas artigos novos/alterados nos últimos 10 minutos. Como o feed é buscado a cada 3 minutos, é desnecessário incluir artigos que não sofreram alterações.

Infelizmente não temos uma lista de endereços IP estáticos para o rastreador. No entanto, você pode usar o agente do usuário do nosso rastreador: facebookexternalhit/1.1

A extração ignora atualizações que foram feitas no Instant Article há mais de 24 horas com base na hora de op-modified. Isso significa que o horário da modificação deve ser de até 24 horas depois do horário de modificação definido no artigo existente, não no horário atual. Nos casos em que a atualização é ignorada, é possível alterar o artigo manualmente pela ferramenta de edição de Instant Articles na Web.

Para saber mais sobre esse assunto, clique aqui.

Verifique se os artigos duplicados usam URLs canônicas diferentes. Usamos a URL canônica do artigo como o identificador exclusivo dele, portanto, artigos com URLs canônicas diferentes serão tratados como artigos separados.

Um problema comum é que o CMS pode publicar a atualização do artigo com uma URL diferente, o que faz com que as atualizações sejam ingeridas como artigos novos.

Sim, cada página é associada exclusivamente a um nome de domínio, e esse é um mapeamento 1:1. Exigimos que os Instant Articles pertencentes a determinada página tenham URLs canônicas que pertençam ao domínio especificado ou a um subdomínio deste.

No entanto, o domínio da URL do feed RSS em si não precisa ser igual ao associado à página. Essa restrição só é válida para as URLs canônicas dos artigos do feed.

Se você quiser publicar artigos em páginas que variam conforme o idioma, configure feeds RSS diferentes para cada idioma e ajuste cada página para usar o feed RSS adequado.

Não. Depois que o artigo é ingerido do feed RSS, ele permanece armazenado como Instant Article até ser excluído das ferramentas de publicação da sua página. Então, é seguro removê-lo do seu feed RSS para acelerar a próxima busca.

No momento, não há forma de publicar ou excluir artigos via API, mas estamos trabalhando nisso.

O botão Curtir usa a cor de destaque definida nas suas configurações de estilo. Confira se você configurou uma cor que fique visível em contraste com o cabeçalho.

Além disso, o botão Curtir só aparece se o usuário que está vendo artigo ainda não curtiu a página, então ele não aparecerá para os administradores que já curtiram essa página.

Confira se você não está usando várias tags <br> em uma linha. Para dividir o texto do artigo em vários parágrafos, recomendamos usar tags de parágrafo (<p>) em vez de quebras de linha.

Verifique se você acrescentou a classe “op-tracker” à tag <figure> que envolve o pixel de rastreamento. Sem essa tag, ele será tratado como incorporação de imagem.

Confira se o arquivo do vídeo tem um formato compatível. Veja aqui a lista de todos os formatos de vídeo compatíveis.

Verifique também se a incorporação de vídeo está devidamente envolvida por uma tag <figure> e se você não está envolvendo o vídeo com um parágrafo (tag <p>).

Esse alerta é comum quando colocamos conteúdo não textual, como imagens ou incorporações interativas, entre parágrafos (tags <p>). Os parágrafos devem conter apenas o texto do corpo; todos os outros conteúdos devem ser colocados dentro da tag <figure> ou de outros elementos contêiner adequados.

Não, o elemento Legenda (<figcaption>) só é compatível com tags <h1>, <h2> e <cite>. Ele é incompatível com a tag de parágrafo (<p>).

No momento, o atributo “muted” não é compatível com elementos <video>.

Os anúncios dos artigos são definidos usando o elemento HTML5 padrão <figure> para envolver o elemento <iframe> que contém a marcação do anúncio. Para especificar um anúncio no artigo, você pode aplicar a classe op-ad ao elemento <figure>. Existem duas formas de especificar anúncios: especificar diretamente a URL do anúncio usando o atributo “src” no iframe ou incorporar o conjunto sem escape de HTML e scripts dentro do iframe.

Para saber mais sobre anúncios, clique aqui: https://developers.facebook.com/docs/instant-articles/reference/ad.

O elemento de imagem padrão não é compatível com imagens SVG. Em vez disso, você pode usar uma incorporação interativa (“op-interactive”) e adicionar um elemento <img> dentro do iframe, com o atributo “src” definido como a URL da imagem SVG.

Você pode usar o elemento Mapa documentado aqui: https://developers.facebook.com/docs/instant-articles/reference/map. Esse é o processo que recomendamos para acrescentar mapas aos Instant Articles.

Se você for adicionar uma incorporação do Google Maps ao seu artigo como incorporação interativa, existe um problema conhecido com o funcionamento dessa incorporação que pode impedir a exibição do mapa. Para resolver esse problema, é preciso incluir o iframe que carrega o conteúdo do mapa (“https://www.google.com/maps/embed?...”) em outro iframe.

É possível incorporar módulos interativos usando uma figura op-interactive. Para ver mais detalhes e exemplos de código, clique aqui: https://developers.facebook.com/docs/instant-articles/reference/interactive.

Para definir a altura, acrescente o atributo “height” ao elemento <iframe> que envolve o conteúdo incorporado. O valor do atributo precisa ser um número inteiro que indique a altura em pixels. A altura pode ser de até 960 pixels.

Para acrescentar uma capa, inclua uma tag <figure> dentro do cabeçalho. É possível usar uma imagem ou um vídeo como capa adicionando uma tag <img> ou <video> à figura.

Veja aqui mais informações sobre as capas.

Para acrescentar espaçamento entre duas imagens, você pode colocar parágrafos vazios entre elas, por exemplo, <p>&nbsp;</p>.

Para acrescentar uma atribuição, use um elemento <cite> dentro do elemento <figcaption>.

Nas imagens de capa, é possível especificar a atribuição de modo que ela sempre fique visível. Para isso, especifique explicitamente um dos atributos de alinhamento vertical no elemento <cite>. Caso contrário, a citação não será mostrada na imagem enquanto ela não for expandida.

Para incorporar conteúdo social, acrescente uma figura com a classe “op-social” e adicione um iframe que contenha o conteúdo a ser incorporado.

Consulte este documento para ver mais detalhes e exemplos de código.

Para adicionar a capa, é preciso usar o link direto do arquivo de vídeo (por exemplo, um arquivo MP4). Como os vídeos hospedados no Facebook não oferecem link direto, será preciso hospedar o vídeo em outro local para usá-lo como capa.

É possível usar algumas tags HTML dentro dos itens da lista para, por exemplo, colocar o texto em negrito ou acrescentar links. Para personalizar a cor ou o estilo da fonte, você pode usar o editor de estilos na interface de Página do Facebook (Configurações -> Instant Articles).

Se o vídeo for incorporado usando o elemento HTML <video>, isso não será possível, pois não oferecemos compatibilidade com a reprodução de vários vídeos em sequência.

Se você estiver incorporando um player de vídeo como incorporação social em um iframe, é possível, desde que o reprodutor incorporado seja compatível com essa função.

Citações em bloco não são aceitas; elas precisariam ser colocadas fora da tag de parágrafo.

Quando o título do artigo é longo o suficiente para precisar de duas linhas, somente ele é mostrado no Feed de Notícias. Quando o título cabe em uma única linha, a prévia do Feed de Notícias também mostra o começo do texto do artigo.

Verifique se você acrescentou o atributo “data-fb-disable-autoplay” aos seus vídeos.

Caso a reprodução dos vídeos não seja automática para uma pessoa específica, confira se a reprodução automática do vídeo não está desativada nas configurações do aplicativo do Facebook. Veja aqui as instruções para verificar isso.

Para exibir um vídeo na prévia do artigo no Feed de Notícias, adicione a classe “fb-feed-cover” a qualquer vídeo do seu artigo. Veja mais informações sobre as prévias do Feed de Notícias aqui

É preciso incluir um elemento <time> na marcação HTML de cada um dos seus artigos, usando a classe op-published para especificar a data/hora da publicação original do artigo.

A classe op-modified não é obrigatória. Só é necessário incluir um elemento <time> junto com a classe se você estiver atualizando o conteúdo do artigo e quiser que nós também atualizemos a nossa versão do artigo.

Confira se o texto está envolto em parágrafos (tags <p>). Veja aqui mais informações sobre a criação da marcação do artigo.

Verifique se <figure> não está envolto em parágrafos (tags <p>). As imagens devem ser cercadas por tags de figura que ficam diretamente posicionadas sob a tag do artigo.

Infelizmente não é possível acrescentar legendas a imagens isoladas da apresentação multimídia. Só é possível adicionar uma única legenda para toda a apresentação multimídia.

Consulte a documentação sobre apresentações multimídia para saber mais.

Para adicionar curtidas ou comentários a uma imagem, especifique o atributo “data-feedback” na tag <figure> que contém a imagem. Por exemplo, adicionar o atributo data-feedback="fb:likes,fb:comments" faz com que as curtidas e os comentários da imagem sejam exibidos.

Para saber mais, consulte a documentação do atributo de feedback.

Ao especificar a largura de itens como a incorporação interativa, use um valor inteiro que especifique a largura em pixels. Os itens aparecem com sua largura total por padrão.

Para exibir a incorporação interativa sem margens, você pode acrescentar a classe “no-margin” ao iframe que contém o conteúdo.

Caso o feed RSS da sua página já tenha sido aprovado, não é preciso reenviá-lo para aprovação em caso de mudança de URL.

Relacionamos cada página a um nome de domínio exclusivo. A URL do feed RSS em si não precisa ser igual ao nome de domínio dele. No entanto, a URL canônica de cada artigo dentro do feed deve pertencer ao mesmo domínio ou a um subdomínio deste. Se você alterar apenas a URL do feed RSS, isso não causará problema.

Se você também for atualizar as URLs canônicas dos artigos para que apontem para o novo domínio, será preciso solicitar a atualização desse domínio pelo seu gerente de contas, que orientará você durante o processo.

SDK do iOS

Verifique se o seu aplicativo do Facebook conta com uma identificação real definida do iPhone Store, iPad Store (para fins de teste não precisa ser o seu ID verdadeiro, você pode usar qualquer um dos aplicativos disponíveis na Apple Store), e se está com iOS-iPad ativado nas plataformas listadas na central de aplicativos.

Isso faz parte do projeto. O diálogo do feed publica conteúdo com um anexo, então não é possível personalizar outros anexos.

SDK do JavaScript

Consulte este documento para ver as práticas recomendadas de otimização de imagens para gerar ótimas prévias aqui.

Os dados de resposta estão disponíveis apenas se o usuário estiver conectado ao seu aplicativo usando o Facebook e tiver concedido publish_actions. Isso também está documentado aqui.

Trata-se de uma alteração intencional. Nós encurtamos a lista de amigos como uma tentativa de tornar as solicitações de jogos mais relevantes para o jogador apropriado. Observe que os jogadores ainda podem selecionar quantos amigos quiserem por meio do campo Pesquisa.

A boa notícia é que, com essa mudança, tivemos um aumento nos cliques e um aumento considerável no CTR geral. Estamos ansiosos por continuar a otimização desse canal e por encontrar novas maneiras de garantir que os jogos adequados sejam exibidos às pessoas adequadas.

Compartilhamento de link

O rastreador procurará um registro AAAA e retornará um código de resposta 0, caso não o encontre. Verifique se registro AAAA está atualizado corretamente quando você alterar a URL ou o servidor.

Confira Como atualizar URLs para obter mais informações.

A alteração de og:title, og:image, etc. só se aplica a compartilhamentos futuros desse link.

Depois que uma pessoa ou página compartilha um link e há mais de 50 interações com a publicação (comentários, curtidas, compartilhamentos, etc.), o título não pode ser alterado. Isso serve para impedir que um site altere detalhes de um link depois que você interage com ele, fazendo parecer que você estava interagindo com algo diferente. Todas as outras propriedades podem ser modificadas a qualquer momento.

Se você tiver compartilhado um link e atualizado a imagem, o compartilhamento original continuará a ser exibido à imagem antiga a menos que você o atualize na publicação.

Para atualizar a imagem do link em uma publicação:
  1. Navegue até a publicação em seu feed de notícias.
  2. Clique nas reticências no canto superior direito da publicação.
  3. Selecione Atualizar anexo de compartilhamento.

Muitos fatores são levados em consideração para a definição de como uma imagem pode ser cortada. Por exemplo, tentamos centralizá-la ao redor de rostos detectados.

Para imagens grandes, tente manter a taxa de proporção próxima de 1,91:1 para mostrar a imagem inteira no Feed, sem cortes.

As publicações da página sempre usam uma imagem grande no formato paisagem para compartilhamentos de links. O mesmo ocorre no Feed para desktop e dispositivos móveis. Mantenha as imagens o mais próximo possível da taxa de proporção de 1.91:1 para exibir a imagem no Feed sem cortes.

Seu link pode ter sido sinalizado por nosso sistema de filtragem de conteúdo. Se você acredita que isso é um erro, envie um relatório em nosso Site de ajuda; certifique-se de incluir a URL relevante.

As imagens são armazenadas em cache assincronamente e, portanto, a imagem pode não renderizar da primeira vez que alguém compartilhar seu conteúdo. Você pode evitar isso:

Todos os compartilhamentos e curtidas estão vinculados a uma URL específica (o que chamamos de URL canônica). Alterando a estrutura do site para usar novas URLs, você passa a receber curtidas e compartilhamentos nessa nova URL.

Confira Como atualizar URLs para obter mais informações.

Todos os compartilhamentos e curtidas estão vinculados a uma URL específica (o que chamamos de URL canônica). Alterando a estrutura do site para usar novas URLs, você passa a receber curtidas e compartilhamentos nessa nova URL.

Confira Como atualizar URLs para obter mais informações.

Imagens com menos de 600 x 315 pixels, mas com mais de 200 x 200 pixels serão renderizadas com uma imagem quadrada e pequena.

Consideramos todas as URLs de imagem imutáveis, uma vez que elas são usadas para armazenar em cache recursos em diferentes camadas, portanto, se você precisar substituir uma imagem, será preciso também usar uma nova URL. À medida que os caches envelhecem, buscaremos a nova imagem e o problema será corrigido.

Se você estiver usando uma URL diferente, mas ainda vir a antiga imagem, também é possível acessar o Depurador de compartilhamento e extrair novamente a URL:

Todas as URLs devem ser absolutas, uma vez que representam o local canônico de um recurso (página/imagem), para que possamos atribuir compartilhamentos e curtidas à URL correta e armazenar imagens em cache de maneira apropriada.

A imagem original não está mais disponível, é muito grande ou não pode ser obtida devido a um problema temporário. Verifique se a URL da imagem está acessível ao nosso rastreador, se não é maior que 8mb e se é exibida com menos de alguns segundos de latência.

Ao alterar a og:imagem de uma página, não remova a imagem antiga do site, pois os compartilhamentos existentes mostrarão essa área em branco.

API de marketing

Isso é causado pelo atraso da replicação entre nossos datacenters. A conclusão desse processo leva alguns segundos. Antes disso, o ID do objeto não estará acessível via API.

Se você tentar ler os detalhes de um anúncio antes que ele esteja totalmente salvo, poderá receber uma GraphMethodException com uma mensagem como Unsupported get request. Object with ID 'XXXXXXXXXXXXXXXXXX' does not exist, cannot be loaded due to missing permissions, or does not support this operation.

Aguardar um momento antes de tentar OBTER os detalhes do anúncio funcionará como solução alternativa para o problema.

Algumas vezes, você poderá se deparar com um erro de validação ao tentar usar certos criativos dentro de uma determinada campanha. Isso pode acontecer se a campanha tiver um objetivo incompatível com o criativo que estiver usando. Um exemplo disso poderia ser que seu criativo apontasse para um jogo do canvas, enquanto o objetivo da campanha fosse "MOBILE_APP_INSTALLS" (instalações do aplicativo móvel).

Para solucionar possíveis erros de validação, siga as Práticas recomendadas de validação da API de Marketing.

Verifique se as sessões de carregamento que não contêm os itens em questão não continham falhas.

Os itens que não existirem mais no feed de uma sessão de carregamento bem-sucedida somente serão excluídos quando deletion_enabled for definido como verdadeiro.

Se você encontrar esse erro, verifique o status da conta de anúncios que estiver sendo especificada. Muitas vezes esse erro é retornado quando a conta de anúncios não está configurada corretamente.

Esse comportamento é esperado, já que os dados do back-end das informações da Página são armazenados apenas por 2 anos. Por isso, espera-se que a chamada retorne valores iguais a zero. Os únicos itens que não serão zero serão as curtidas/comentários/compartilhamentos em uma publicação cujos dados forem retidos pela própria publicação.

Verifique a sintaxe da especificação de direcionamento, especificamente garantindo que a especificação de direcionamento contém parâmetros e valores válidos de geo_locations.

Quando você criar um anúncio com certos objetivos, serão definidas as especificações de conversão padrão. Se você alterar as especificações de conversão, as especificações atuais serão substituídas.

Observe que alguns objetivos não terão especificações de conversão padrão e deverão ser especificados de forma explícita.

Isso pode estar ocorrendo porque o público work_positions do país para o qual você está direcionando é tão pequeno que não afeta a estimativa de alcance. Estamos constantemente reunindo dados que esperamos melhorar o número de pessoas adicionadas à exclusão work_positions, o que afetará a estimativa de alcance.

Isso está ocorrendo porque seu aplicativo está com a migração de segurança do URL da publicação em stream ativada.

Se o seu aplicativo estiver com essa configuração ativada, o sistema não permitirá a criação de anúncios da publicação de link de qualquer tipo, a menos que redirecione para a URL do canvas referenciada na configuração do seu aplicativo. Não deve ser uma exigência ter isso ativado, a menos que seu aplicativo seja de canvas e publique somente histórias que redirecionem de volta ao domínio do aplicativo do canvas.

O usuário provavelmente será associado à conta por meio de uma associação com o Gerenciador de Negócios, que não aparecerá como uma associação explícita da Graph API.

Confirme se você possui as Categorias de parceiros especificadas no campo de direcionamento apropriado. As Categorias de parceiros recuperadas do ponto de extremidade “/partnercategories” contêm um campo chamado “targeting_type” que especifica o campo de direcionamento que você precisa usar ao definir o Tipo de direcionamento.

Por exemplo, se sua Categoria de parceiro retornar “targeting_type” igual a “behaviors”, então, na sua especificação de direcionamento, você deverá usar essa categoria de parceiro no campo “behavior” da sua especificação de direcionamento.

Há mais informações sobre os tipos de direcionamento e as Categorias de parceiros aqui: https://developers.facebook.com/docs/marketing-api/partnercategories/v2.3#targeting_types

Esse erro pode ser causado por um Público Personalizado que não tem quaisquer inclusões/exclusões definidas. A melhor maneira de resolver esse problema é criar um novo Público Personalizado e definir algumas inclusões e exclusões.

Há mais informações disponíveis sobre os Públicos Personalizados, aqui: https://developers.facebook.com/docs/marketing-api/custom-audience-targeting/v2.3.

Um conjunto de anúncios pode ter um daily_budget e um lifetime_budget. O valor de daily_budget definido na moeda da sua conta deve ser de pelo menos 100 centavos e a duração deve ser superior a 24 horas. Se você consultar qualquer um desses campos, ambos serão retornados. Se um campo não for utilizado será retornado um valor igual a zero.

Para saber mais, acesse: https://developers.facebook.com/docs/reference/ads-api/adset.

O ponto de extremidade adcampaign_groups utiliza paginação baseada no cursor, por isso não retorna os campos contagem, limite e deslocamento. Recomendamos utilizar a paginação com base no cursor com todos os pontos de extremidade para receber resultados coerentes.

Para mais informações sobre a utilização de paginação do cursor, consulte aqui: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#paging.

Pode ser que algumas das publicações tenham sido criadas em linha. Para ler essas publicações em linha, consulte a observação sobre o campo "is_inline" de /promotable_posts na parte inferior desta seção do documento: https://developers.facebook.com/docs/reference/ads-api/adcreative/v2.2#object_story_spec

Plataforma do Messenger

Desde que o usuário responda à primeira pergunta, a janela de mensagens será aberta. Se as respostas fornecidas desqualificarem o usuário ou se o usuário não responder, a experiência do anúncio será encerrada. Além disso, o anúncio passará o controle da conversa para o app de destino e fornecerá os metadados "messenger_lead_gen_incomplete". Isso permite que as empresas tenham uma experiência alternativa para converter pessoas que não são cadastros em clientes. Confira Webhook de protocolo de entrega após o anúncio de cadastro para obter mais informações.

A opção Enviar resumo é habilitada por padrão apenas quando um app é selecionado na caixa de diálogo Criar modelo dentro do anúncio. O resumo pode ser desabilitado no anúncio depois de selecionar o app conectado. Mesmo quando um app não é selecionado, o anúncio de geração de cadastros passará o controle da conversa para o destinatário principal do protocolo de entrega quando definido ou apenas liberará o controle da conversa. Qualquer mensagem de acompanhamento após o envio do cadastro irá para o app inscrito. Os apps podem consultar a API de Conversas para recuperar o histórico de mensagens e obter as informações compartilhadas durante a geração de cadastros.

Por padrão, a Send API e os webhooks são bloqueados enquanto um anúncio de geração de cadastros está em andamento. ID do app: 413038776280800 para o Messenger. O app de geração de cadastros terá controle da conversa. Esse comportamento pode ser desabilitado com o botão Bloquear Send API, na caixa de diálogo Criar modelo, dentro do anúncio

Depois que o envio do cadastro for encerrado, os apps receberão webhooks em mensagens de usuários e poderão responder a elas. Se um app tiver sido selecionado como parte do App, apenas o app selecionado poderá responder e receberá webhooks no canal de mensagens. A janela de mensagens é aberta e o App poderá responder usando a Send API

Os apps são instalados a partir do site do app usando o Login do Facebook e concedendo a permissão pages_messaging a uma Página específica. Os apps autorizados serão exibidos nas Configurações da Página em Mensagens avançadas.

Apenas apps autorizados para a Página serão exibidos. Você pode ver os apps autorizados nas Configurações da Página em Mensagens avançadas. Os apps são instalados a partir do site do app usando o Login do Facebook e concedendo a permissão pages_messaging a uma Página específica.

As experiências de bate-papo automatizado (por exemplo, “bots”) devem informar que os usuários estão interagindo com serviços automáticos nas seguintes situações:

  • No começo de qualquer conversa
  • Após um intervalo de tempo significativo
  • Quando a conversa passar da interação humana para a experiência automatizada

Saiba mais sobre essa política aqui.

As experiências de bate-papo automatizado (por exemplo, “bots”) devem informar que os usuários estão interagindo com serviços automáticos nas situações exigidas pela legislação aplicável. No entanto, essa é uma prática recomendada mesmo quando não é obrigatória por lei, já que evita surpresas para os usuários. Saiba mais sobre essa política aqui.

Sim, um único aplicativo do Facebook pode se inscrever em várias páginas. Depois que o aplicativo é analisado, como a permissão pages_messaging, o aplicativo pode se inscrever para receber webhooks em mais de uma página. Você é responsável por obter o contexto de cada webhook com base na carga.

Sim, mais de um app pode assinar uma Página. Quando vários apps são responsáveis pela mesma conversa, a melhor opção é usar o protocolo de entrega para administrar qual deles será o responsável por ela.

Isso pode acontecer se o usuário tiver excluído o tópico. Isso faz com que o bot não consiga enviar mensagens para o usuário novamente. O bot poderá se comunicar com o usuário depois que o usuário reiniciar enviando uma mensagem.

Aqui está uma solução alternativa para usar um usuário de teste de plataforma para sua integração de plataforma de mensagens:

  1. Na página Funções do seu aplicativo, crie um novo usuário de teste clicando no botão Adicionar.
  2. Alterne a opção Autorizar usuários de teste para este aplicativo? e conceda as permissões "manage_pages" e "page_messaging".
  3. Use o botão Editar e obtenha um token de acesso para este usuário (usando v2.6). Salve isto para mais tarde.
  4. Utilize o botão Editar para entrar como usuário de teste.
  5. Quando estiver conectado, crie uma página como usuário de teste.
  6. Use o token de acesso de usuário para o usuário de teste para obter o token de acesso da Página deste usuário. Você pode fazer isso com a seguinte chamada:
    https://graph.facebook.com/v2.6/me/accounts?access_token=[TEST_USER_ACCESS_TOKEN]
    (Documentação)
  7. Use este token de acesso da Página para vincular seu Aplicativo do Facebook à sua Página:
    https://graph.facebook.com/v2.6/me/subscribed_apps?method=POST&access_token=[TEST_USER_PAGE_ACCESS_TOKEN]
            
    (Documentação)
  8. Depois de ter seguido estas etapas, você receberá atualizações RTU para sua Página de teste e poderá enviar mensagem ao seu Usuário de teste por meio da Página de teste. Além disso, é possível substituir seu token de acesso por um token de longa duração se eles estiverem expirando muito rápido para seus testes. Siga a documentação aqui:
    GET /oauth/access_token?  
        grant_type=fb_exchange_token&           
        client_id={app-id}&
        client_secret={app-secret}&
        fb_exchange_token={short-lived-token} 
            

Há várias razões pelas quais isso pode acontecer:

  • Você está usando uma identificação do Login do Facebook As identificações de usuário do Login do Facebook não são destinadas a funcionar com a API de Envio/Recebimento. Somente as identificações de usuário obtidas por meio da autenticação com a Plataforma do Messenger funcionarão com a Plataforma do Messenger.
  • Você está usando uma identificação com um token de acesso da Página incorreto. As identificações de usuário da Plataforma do Messenger serão inseridas no escopo de uma página e, portanto, são específicas da página. Se você usar uma identificação de usuário válida com um token de acesso da Página associado a uma página diferente, a chamada não funcionará. Certifique-se de usar a identificação de usuário e o token de acesso da Página associado à mesma página.
  • Você está enviando para um número de telefone que não foi verificado recentemente. Ao usar a API de Envio com um número de telefone, só enviaremos mensagens se o número de telefone tiver sido verificado recentemente. Mesmo se o número de telefone for mostrado como verificado, mas não tiver sido verificado recentemente, o envio poderá falhar. Verifique novamente o seu número de telefone e aguarde 24 horas até tentar novamente.

Ao usar o Plugin “Enviar para o Messenger”, o parâmetro data-ref pode ser usado por você como um parâmetro de passagem para enviar qualquer informação sobre o contexto do clique.

As pessoas também podem descobrir sua página por meio da pesquisa no Messenger. Nesses casos, você não terá um parâmetro de passagem. É possível usar o recurso de link da conta para associar um tópico a uma conta de usuário no seu site.

No Painel de Aplicativos, acesse a opção “Configurações” do Messenger e clique no botão “Exibir erros recentes” para ver se os Webhooks obtêm a resposta 200 ou apresentam falhas.

Há uma ferramenta que exibe os erros recentes dos Webhooks. Se os recursos apresentarem falhas na entrega, os servidores do Facebook cancelarão a assinatura da sua URL. Para encontrar a ferramenta, acesse Painel de Aplicativos > Messenger > Configurações. Depois, clique no botão Exibir erros recentes, que aparece no cartão “Webhooks”.

Verifique se o webhook está respondendo com um código de status de 200. Isso nos comunica que o webhook foi recebido com sucesso. Se você não retornar o código 200, vamos repetir a chamada até que seja concluída com êxito. Além disso, se um webhook não retornar o código 200 por um longo período de tempo, iremos apresentar alertas de desenvolvedores.

Observe que um código de status bem-sucedido é retornado em tempo hábil. Uma chamada webhook com tempo limite após 20 segundos. Projete o seu código para que os webhooks sejam processados ​​de forma assíncrona para que um código de status bem-sucedido possa ser retornado imediatamente e processado separadamente.

As chamadas para o webhook contêm um campo no cabeçalho denominado Assinatura-Central-X, que pode ser usado para validar se a chamada veio do Facebook.

Há 2 etapas para receber retornos de chamada. Primeiro, certifique-se de que seu webhook está configurado corretamente (https://developers.facebook.com/docs/messenger-platform/webhook-reference#setup). Existe um indicador quando os webhooks estão configurados corretamente.

Em segundo lugar, você deve se inscrever em cada página. Todas as páginas inscritas serão listadas.

Se as chamadas para o seu webhook falharem por um período de tempo prolongado, o seu aplicativo terá a inscrição cancelada e você terá de voltar a adicionar o webhook e inscrever a sua página novamente.

Open Graph

É bastante provável que o conteúdo precise ser novamente extraído, o que ocorrerá automaticamente no momento oportuno, ou poderá ser acionado manualmente por meio da Ferramenta de depuração.

Não é possível controlar como uma publicação será exibida no Feed de Notícias ou na Linha do Tempo ao compartilhar sua publicação de Open Graph além do fornecimento das tags OG da sua Página. O Facebook otimiza as publicações automaticamente, para assegurar a máxima interatividade do seu conteúdo.

Sim, o recurso de links de ação ficaram obsoletos. A compatibilidade com links de ação foi removida do site do Facebook, por isso ficou obsoleta na plataforma. Esse recurso poderá ser revisitado no futuro, mas não está no roteiro atual.

Se sua página da web estiver usando metatags de OpenGraph e incluindo uma entrada og:image, buscaremos essa imagem e a exibiremos na prévia. Além disso, se o seu site fornecer og:image, og:image:width e og:image:height, essa imagem será usada, mesmo no primeiro compartilhamento que for criado.

Não fornecendo esses meios você terá que aguardar até que nossos rastreadores busquem e analisem as imagens primeiro. Consulte http://ogp.me/#structured para ver um exemplo de como fazer isso.

API de REST

Isso faz parte do projeto. A API REST está obsoleta há bastante tempo e não deverá continuar funcionando. Há uma limitação: os tokens de acesso à Página não podem ser usados com a API REST.

Plug-ins sociais

Você pode definir uma localidade para o botão Curtir utilizando o parâmetro 'locale' no SDK JS. Isso funcionará para os usuários não conectados. Se um usuário estiver conectado, a preferência de idioma do usuário também será considerada. Se estiver definida com um idioma específico, o botão Curtir estará nesse idioma.

Para testar esse comportamento, acesse sem estar conectado ao Facebook (ou utilizando uma sessão privada do navegador).

É contra a política do Facebook preencher automaticamente a área de texto ao compartilhar no Facebook. O próprio usuário do seu aplicativo deverá preencher com o texto que quiser compartilhar.

O preenchimento automático da área de texto durante compartilhamentos viola a Política da Plataforma 2.3 ( https://developers.facebook.com/policy/#control ). Aplicamos essa política para garantir que os usuários compartilhem exatamente o que querem no Facebook, e que não compartilhem por acidente um texto que não aprovaram.

Esse poderá ser o comportamento esperado se você alterar ou modificar a URL da página da web. Cada URL que hospeda o plugin de comentários é tratado como um objeto de Open Graph separado, e os comentários estão associados a esse objeto. Assim, se você modificar a URL, será criado um novo objeto e os comentários existentes poderão não ser exibidos na página.

Não, não é possível publicar comentários em um plugin de comentários por meio da API.

O compartilhador não permitirá que você passe parâmetros personalizados e, em vez disso, preencherá os metadados diretamente a partir das metatags de Open Graph da Página

Para saber mais sobre as práticas recomendadas de compartilhamento de conteúdo, consulte este documento: https://developers.facebook.com/docs/sharing/best-practices

API do WhatsApp Business

Yes, Whatsapp Flows can be sent with On-Premises API. You can learn more about Whatsapp Flows here, or learn how to get started with Whatsapp Flows and On-Premises API here.

No this is not possible. Numbers that are registered under WABAs (WhatsApp Business Accounts) can only message regular WhatsApp accounts.

We will provide a seven day grace period post sending the warning. This will allow time for businesses to adjust their behavior. If businesses continue to exceed our internally set threshold of calls to the Contacts API vs. number of messages sent, we will permanently disable the phone number.

Interactive messages can be reopened by the user in order to resend an option. This is in case of mistyping the desired option or wanting to choose a new option.

Through user testing we’ve identified 10 as the optimal number of rows to provide a good user experience. If you have a list of more than 10 options, and cannot condense into one list message, we recommend creating an additional step in the flow and using two list messages. During testing businesses had higher response rates and conversions with this approach than using text-based lists.

Through user testing we’ve identified 3 as the optimal number of buttons to provide a good user experience. If you have a list of more than 3 options, and cannot condense it into one button message, we recommend using list messages. During testing, businesses had higher response rates and conversions with list messages than using text-based lists.

There may be a very small number of users for whom their app version does not support this feature, the business will receive a webhook notification throwing an error that describes why the message was unable to be received. It is up to the business to determine how to handle this error elegantly. Best practice would convert the interactive message to a text-based list to allow the user to complete the workflow.

If there is a delay in a subset of numbers, then it is likely not an issue affecting the customers integration but rather an issue on the recipients end, these delays in delivery can happen for a number of reasons. See Send Message Performance, Delays for more information.

Não. No momento, não oferecemos suporte à alteração de caminho padrão do armazenamento de mídia (/usr/local/wamedia/). Todos os armazenamentos de mídia precisam usar esse local padrão para funcionarem adequadamente.

Não. No momento, precisamos usar o AWS EFS para compartilhar o volume de mídia entre o Coreapp e o Webapp.

No contêiner do Coreapp, os diretórios /usr/local/waent/data e /usr/local/waent/log serão verificados para garantir que no mínimo 10 MB de armazenamento estejam disponíveis. Caso contrário, esse erro será exibido.

Confira se há espaço suficiente nos seus registros e diretório de dados.

Não. No momento, não é possível executar vários números na mesma configuração de cliente da WhatsApp Business API. Estamos trabalhando em uma solução adequada para que isso seja possível.

Use o ponto de extremidade de API services da coleta de lixo do banco de dados para remover as mensagens e os recibos correspondentes das tabelas messageStore.messages e messageStore.messages_receipt_log.

Verifique a configuração pass_through do aplicativo. Se a configuração pass_through for ativada na v2.29.1 ou superior do cliente da WhatsApp Business API, você não receberá as confirmações de leitura.

Para receber o retorno de chamada de confirmação de leitura, desative a configuração pass_through do aplicativo. Lembre-se de que a desativação de pass_through poderá levar a um aumento repentino no armazenamento do banco de dados. Consulte a documentação sobre gerenciamento do banco de dados para saber mais.

A coleta de lixo do banco de dados limpa periodicamente as tabelas messages e messages_reciept_log para ajudar com o gerenciamento do banco de dados.

O coletor de lixo retém certas mensagens para possibilitar o sucesso da entrega/do processamento. Por exemplo, reter a mensagem recebida por um determinado período de tempo para permitir que as integrações comerciais marquem a mensagem como lida.

O Coreapp executa a coleta de lixo em intervalos aleatórios (ou seja, a cada período de algumas horas). O objetivo é evitar uma possível redução do desempenho nas pilhas de alta disponibilidade devido à contenção do banco de dados.

A coleta de lixo é independente da fila do retorno de chamada. Por exemplo, se o servidor Webhook não estiver disponível por 4 dias, os retornos de chamada serão armazenados para serem entregues quando a conectividade do servidor for restaurada.

O link só será renderizado como clicável se o seu número comercial estiver salvo nos contatos do destinatário ou se você tiver uma conta empresarial oficial.

Antes da v2.29.x, a fila de mensagens enviadas podia aumentar ao longo do tempo devido a um erro. Atualizar para a v2.29.3 resolve esse problema.

As análises não estão disponíveis para QR codes e links curtos, já que limitamos a quantidade de dados registrada para proteger a privacidade dos usuários.

Você é responsável por usar um QR code adequado à localização e ao idioma provável dos usuários.

Agora, é possível gerar e gerenciar QR codes diretamente na WhatsApp Business Management API. Os usuários podem fazer a leitura do QR code com a câmera do WhatsApp, do iOS ou do Android.

Além disso, os QR codes do WhatsApp trazem as seguintes vantagens:

  • As mensagens preenchidas automaticamente são totalmente personalizáveis e podem ser alteradas ou excluídas a qualquer momento.
  • Os usuários sempre acessam o app diretamente, sem passar por uma página intersticial.
  • Em caso de QR code expirado, a experiência no app enviará uma mensagem vazia ao usuário.

Caso um usuário tente acessar um código QR ou um link curto que foi excluído, uma mensagem de erro será exibida para indicar que esse código/link expirou.

Se o usuário tiver instalado o cliente do WhatsApp para computador, uma conversa com sua empresa será aberta. Caso contrário, o usuário receberá um comando interativo para instalar o cliente.

Com os novos links curtos, será possível editar ou excluir a qualquer momento as mensagens preenchidas automaticamente que estiverem associadas a um link. Além disso, a sintaxe da URL será reduzida a um código aleatório. Isso eliminará a necessidade de incorporar mensagens à URL e ocultará o telefone.

Para obter a melhor qualidade possível em materiais impressos, recomendamos usar o formato de arquivo .svg.

Um número de telefone da conta do WhatsApp Business (WABA, pelas iniciais em inglês) não pode ser associado a mais de 2.000 QR codes e links curtos.

We are announcing the deprecation of Groups through the WhatsApp Business API. Starting July 8, 2020, only API phone numbers in a group created prior to July 8th can continue to use/manage Groups through the WhatsApp Business API. All other API phone numbers won’t be able to create/manage Groups through the Whatsapp Business API. On October 8, 2020, we will deprecate this feature for all API phone numbers (i.e., API phone numbers will be removed from their groups and no longer be able to send messages to their group).

Em relação a versões anteriores, a v2.25.x melhora o desempenho de entrada e de saída. Essa otimização depende da criação de conexões adicionais do banco de dados. Para algumas implementações, isso pode fazer com que o número de conexões do banco de dados aumente e os limites configurados sejam atingidos. Para manter o desempenho aprimorado, é possível aumentar o número máximo de conexões que o servidor do banco de dados pode aceitar. Caso isso não seja possível, mude o parâmetro axolotl_context_striping_disabled para desativar esse comportamento. Consulte a documentação sobre Configurações do aplicativo para obter mais informações sobre como fazer isso.

Não. Atualmente, os limites para mensagens se aplicam somente às mensagens iniciadas pela empresa (notificações).

Quando você enviar imagens como álbum por meio da WhatsApp Business API, será necessário enviar pelo menos 4 imagens consecutivas. Se a visualização de conversas do usuário estiver ativa quando as imagens forem recebidas, a visualização em álbum ficará indisponível até o próximo acesso.

Se algum destes critérios for atendido, um álbum não será criado:

  1. Imagens com legendas
  2. Divisor não lido – o usuário vê algumas imagens, mas não o resto
  3. Cabeçalho de data – novo dia entre entregas

Não. Atualmente, o Cliente da API do WhatsApp Business não é compatível com o Docker para Windows. Em caso de necessidades relacionadas a desenvolvimento, a solução recomendada é usar uma máquina virtual Linux e executar o Docker dentro dela. Em caso de cargas de trabalho de produção, recomendamos usar um servidor Linux para evitar problemas de compatibilidade e desempenho.

Para Clientes da API do WhatsApp Business com a versão 2.21.6, quando o cliente se desconecta do servidor, ele poderá permanecer desconectado por alguns minutos (até 4 minutos) antes de tentar fazer a conexão novamente. A atualização para a versão 2.23.4 diminuirá o tempo de inatividade do cliente ao tentar se conectar ao servidor.

O código de erro 471 está relacionado a limites de volume com base em qualidade. Consulte a documentação sobre Limites de volume com base em qualidade para obter mais informações.

Todas as empresas começam no nível mais baixo e são atualizadas automaticamente para níveis mais altos conforme enviam mais mensagens de alta qualidade.

Sim. Ao enviar um modelo de mensagem, se ocorre falha ao exibir a mensagem no destino, você receberá um retorno de chamada de status de falha com “estrutura indisponível” no objeto de erro, indicando que não foi possível exibir a mensagem. Dependendo do destinatário, você também poderá receber um retorno de chamada de status de entrega, indicando apenas que a mensagem foi entregue ao destinatário antes da falha de exibição no destino.

Confira a seguir exemplos de erros e suas prováveis causas:

  • "Não existe nenhum modelo de mensagem no idioma seu-idioma" ou "Não existem modelos de mensagem no idioma seu-idioma nem na localidade sua-localidade": o pacote de idioma em questão não existe. Verifique sua conta do Gerenciador de Negócios.
  • "O modelo nome-do-modelo não existe no idioma seu-idioma" ou "O modelo nome-do-modelo não existe no idioma seu-idioma nem na localidade sua-localidade": você está tentando usar um modelo que não existe (não foi criado ou ainda não foi aprovado). Este erro também será exibido se você tentar enviar uma mensagem com um modelo que foi excluído.
  • "O número de parâmetros localizáveis num1 não corresponde à quantidade prevista de parâmetros num2": você está tentando enviar um modelo de mensagem com parâmetros que não correspondem ao número esperado. Verifique se a invocação da API está correta.
  • "O modelo nome-do-modelo é avançado e requer a API de Mensagem de Modelo": você está tentando enviar um modelo de mensagem de mídia como se fosse um modelo padrão. O tipo de mensagem deve ser template. Consulte a documentação sobre modelos de mensagem de mídia para saber mais.
  • Após a aprovação (ou exclusão) dos modelos no Gerenciador de Negócios, pode levar até 20 minutos para que essa atualização seja refletida no cliente da WhatsApp Business API. Caso você tente enviar uma mensagem cujo modelo foi recém-aprovado e receba um erro de modelo inexistente, aguarde o tempo mencionado acima e tente novamente.

É possível enviar mensagens duplicadas a um Webhook do WhatsApp como a única garantia de que as mensagens serão recebidas pelo menos uma vez (e não exatamente uma vez). Se isso estiver afetando a maneira como as mensagens são processadas por você, sugerimos eliminar as duplicações de mensagens do Webhook com base no ID da mensagem.

Se o número de telefone não tiver sido usado na API do WhatsApp Business, você poderá usá-lo. Siga as etapas de migração descritas aqui para reutilizar o número de telefone.

A partir da versão 2.18.26, o ponto de extremidade Estatísticas do aplicativo permite a exportação de métricas internas no formato de texto do Prometheus. Consulte a documentação sobre o Monitoramento de instâncias para obter mais informações.

Um objeto profile será retornado se o perfil comercial estiver apenas parcialmente preenchido. Atualize para a versão v2.21.4 para resolver esse problema.

Consulte a documentação sobre Configurações do perfil comercial para obter mais informações sobre como preencher seu perfil comercial.

Caso ocorra um erro semelhante ao erro a seguir durante a configuração de uma implementação do AWS, tente alterar para um nome de pilha com até oito caracteres.

Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:string is too long, it needs to be less than 64 bytes long Common Name (e.g. server FQDN or YOUR name) []:Email Address []:error, no objects specified in config file problems making Certificate Request Created device key for internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com

Não. Um modelo de mensagem pode ter tantos parâmetros quanto for necessário.

O número máximo é de 250 modelos de mensagem por conta WhatsApp Business.

Se um evento do Webhook não for entregue por qualquer motivo (por exemplo, o cliente está offline), ou se a solicitação do Webhook retornar um código de status HTTP diferente de 200, tentaremos novamente fazer a entrega do Webhook. Continuaremos tentando fazer a entrega com intervalos cada vez maiores até atingir um tempo limite específico (normalmente 24 horas, mas pode variar) ou até que a entrega seja bem-sucedida.

Poderá haver casos em que você precisará de mais tempo para atender à solicitação de um cliente, e será necessário enviar uma resposta ao cliente após o período de 24h. Recomendamos criar modelos de mensagem para:

  • enviar o resultado ao usuário ou
  • solicitar uma resposta do usuário com o objetivo de ativar uma nova janela de atendimento ao cliente.

Em ambos os casos, adicione a maior quantidade possível de contexto ao modelo de mensagem. Por exemplo:

  • “Olá, {{1}}! A respeito do problema que você relatou anteriormente, viemos informar que, infelizmente, {{2}}. Pedimos desculpas por qualquer inconveniência causada."
  • Temos atualizações a respeito do seu ticket. Responda a esta mensagem se deseja continuar recebendo suporte.”

O WhatsApp faz experiências para avaliar e entender o impacto das notificações da API do WhatsApp Business sobre a experiência do usuário e o produto em geral. Se o usuário para quem você está enviando mensagens fizer parte de uma dessas experiências, talvez ele não receba suas notificações mesmo tendo optado por recebê-las.

Se você fizer backup da sua configuração atual e restaurá-la na nova máquina, as informações de registro deverão ser movidas juntamente com o restante da implementação. Consulte a documentação sobre Configurações de backup e restauração para obter mais informações.

Sim. A rotação de registro funciona de maneira ligeiramente diferente entre os contêineres do Webapp e do Coreapp:

  • Webapp: os últimos 30 arquivos de registro são mantidos. O arquivo de registro só é rotacionado se exceder 20 MB.
  • Coreapp: os últimos 30 arquivos de registro são mantidos. O arquivo de registro só é rotacionado se exceder 15 MB. Os arquivos rotacionados são compactados.

Entre em contato com o suporte e forneça todas as informações que você tiver. Nós investigaremos e desativaremos os números falsos.

Todas as compilações do Cliente da API do WhatsApp Business têm um prazo de expiração de seis meses após a data de lançamento. Se você visualizar esse erro, faça a atualização para a versão mais recente assim que possível.

É necessário verificar se o contato existe antes de enviar uma mensagem. Consulte a documentação sobre Contatos para obter mais informações sobre como fazer isso.

Esse erro ocorre quando o Coreapp ainda não foi inicializado. Isso pode significar que o registro não funcionou. Tente fazer o registro antes de fazer chamadas para outro ponto de extremidade. A primeira etapa após a instalação da API do WhatsApp Business é a defazer login. A segunda etapa é a de registro. É necessário concluir essas duas etapas antes de fazer solicitações para outros pontos de extremidade.

Nota: a política de idioma fallback está obsoleta desde a versão v2.27.8 e a política de idioma deterministic é a política padrão agora.

Se você criar uma tradução para um novo idioma, será necessário traduzir todos os elementos que você usa para esse idioma. Caso contrário, erros do tipo “estrutura indisponível” poderão ocorrer, pois o telefone do destinatário não encontrará um elemento esperado para o idioma configurado. Os erros do tipo “estrutura indisponível” ocorrem quando modelos de mensagem são enviados usando a política de fallback.

Se não tiver a opção de criar as traduções para o idioma no momento, você poderá usar uma política determinística para evitar esses erros.

A carga de mensagem enviada por um usuário pode ser um arquivo de texto ou de mídia.

Acreditamos que arquivos de mídia não sejam perigosos.

Sobre os arquivos de mídia:

  • Normalmente, as empresas têm algum tipo de software de proteção (como antivírus, antimalware, etc.) implementado que possa analisar possíveis ameaças.
  • O WhatsApp não consegue identificar nem verificar o conteúdo de arquivos transferidos, pois eles usam criptografia de ponta a ponta (o mesmo ocorre com arquivos somente de texto).
  • Há uma opção para impedir que arquivos de mídia sejam baixados automaticamente no Cliente da API do WhatsApp Business. Caso a empresa não queira receber nenhum arquivo dos usuários, é possível definir o campo auto_download com uma matriz vazia.

Não é possível usar a API do WhatsApp Business para detectar se vários dispositivos estão usando o mesmo número de telefone.

Os erros de estrutura indisponível são exibidos quando o smartphone não consegue ler o modelo de mensagem.

Os modelos são armazenados no servidor. Quando um modelo de mensagem é enviado usando o nó messages, ele não será compartilhado na íntegra. Somente o namespace, o idioma, o nome do elemento e os parâmetros localizados serão encaminhados ao smartphone. Após receber esses valores, o smartphone tentará renderizar a mensagem.

Se houver falhas nesse processo, o erro structure unavailable será enviado à URL de retorno de chamada com o ID da mensagem e do destinatário. Esses erros podem ser causados por um namespace incorreto, uma incompatibilidade no parâmetro localizado, um nome de elemento errado, entre outros.

No Gerenciador de Negócios do Facebook, acesse o Gerenciador do WhatsApp para conferir o número certo de parâmetros. Verifique se o namespace está correto e se o nome do elemento existe.

Um dos motivos mais comuns desses erros é a não criação de traduções para todos os modelos em uso. Por exemplo, digamos que você costume enviar 2 modelos. Se quiser acrescentar a tradução para um idioma novo, será necessário fazer isso com os 2 modelos, e não com apenas um. Caso planeje oferecer compatibilidade com mais de um idioma, você precisará fornecer traduções para todos os modelos em todos os idiomas aceitos.

Porém, na maioria das vezes, o erro structure unavailable acontece por conta de falhas na chamada de API messages . Para resolver esse problema, basta alterar a carga de envio.

Você pode registrar novos números de telefone e excluir o antigo em sua conta do WhatsApp no Gerenciador de Negócios do Facebook.

  1. Em sua conta do WhatsApp, acesse Configurações.
  2. Clique no Gerenciador do WhatsApp.
  3. Selecione a guia Números de telefone. Esse é o local onde é possível gerenciar todos os números de telefone da conta.

Para imagens, a legenda será adicionada como uma descrição. O texto da legenda aparece completo em imagens no Android e no iPhone.

Para documentos, a legenda substitui o nome do arquivo. O objetivo não é que seja exibida no dispositivo do usuário como um texto de descrição, e sim exibir o nome do arquivo. No iPhone, o texto completo é exibido, e no Android, o nome do arquivo é truncado. Isso ocorre devido a uma limitação técnica da implementação atual do WhatsApp em ambos os dispositivos.

Se o registro falhar com a opção “SMS" devido a muitas tentativas, e uma mensagem de “acesso negado" for exibida, tente fazer o registro com a opção “chamada de voz"

Atualmente, o período é de sete dias. Se o cache não for atualizado por mais de sete dias, ele obterá o pacote de idioma mais recente do servidor, mesmo que o elemento já exista no pacote.

Primeiro, o dispositivo carregará a partir do cache e, se houver um elemento, ele desempacotará a mensagem usando o modelo de mensagem. Desse modo, em vez de modificar os modelos de mensagem, é mais seguro simplesmente adicionar um novo modelo com um nome de elemento diferente. Isso garante que o pacote de idiomas seja baixado novamente quando o elemento não for encontrado. Os custos de armazenamento dos modelos de mensagem são muito baixos, portanto não há nenhuma necessidade de excluí-los.

Consulte a seção Idioma em Como enviar modelos de mensagem para mais informações.

Para garantir uma experiência de alta qualidade às empresas e aos usuários, estamos operando em uma prévia pública limitada. Caso queira trabalhar conosco, envie mais informações sobre sua empresa para análise conforme expandimos nossa disponibilidade ou entre em contato com seu representante do Facebook se já tiver um.

Se você desconectar um usuário por meio do ponto de extremidade users, todos os tokens de autorização atribuídos à conta dele serão invalidados. Excluir um usuário terá o mesmo efeito, embora seja uma opção muito mais drástica. Lembre-se de que conectar um usuário por meio do ponto de extremidade users retornará um novo token de autorização, mas isso não invalidará os tokens de autorização relacionados ao usuário que já estão em circulação. Qualquer pessoa que tiver um token provisionado anteriormente continuará podendo usá-lo até que ele expire ou seja invalidado por meio de um dos métodos mencionados anteriormente.

Se receber esse erro, mas o parâmetro obrigatório ausente estiver definido no seu corpo JSON, talvez o problema seja um erro de análise de JSON. Esse erro poderá ocorrer quando não for possível analisar toda a carga JSON devido a erros de formatação JSON. Verifique os valores dos parâmetros para ver se há caracteres inválidos para JSON, como caracteres de retorno no final. Às vezes, os parâmetros podem ser copiados com espaços em branco adicionais que podem conter caracteres que prejudicam o JSON.

Há vários motivos possíveis. Seu Coreapp pode não estar funcionando, ou seu banco de dados pode não ter sido configurado corretamente. Se não for o caso, verifique os registros do Coreapp (ou os registros mestre do Coreapp se estiver usando Multiconexão). Se erros de conexão forem exibidos, é provável que o número de conexões do seu banco de dados esteja acabando. Consulte a documentação do MySQL ou do PostgreSQL a respeito desse erro.

Recomendamos aumentar o número de conexões do seu banco de dados. Um número seguro de conexões para o banco de dados seria o de 1.000, mas você deve verificar as informações necessárias para tomar uma decisão sobre o número de conexões. Se o erro persistir, abra um ticket de Suporte.

Estes são alguns dos motivos pelos quais os modelos de mensagem podem ser rejeitados:

  • Presença de conteúdo potencialmente ofensivo, como linguagem ofensiva ou conteúdo semelhante a spam
  • Presença de conteúdo promocional
  • Não há correspondência com o tipo de tag selecionado
  • Formatação incorreta

Um erro do tipo “conexão recusada” provavelmente significa que o Coreapp não está em execução. Use docker ps para ver se o Coreapp está ativo. Se ele não estiver, consulte os registros do Docker. Talvez o Coreapp não esteja conseguindo se conectar ao banco de dados. Verifique se o banco de dados está configurado corretamente.

Isso acontece quando a ponte do Docker está corrompida. A melhor solução é interromper o serviço do Docker e reiniciá-lo. Você também pode tentar usar docker restart nos seus contêineres.

O WhatsApp verifica rigorosamente se o número fornecido realmente pertence ao telefone. O fato de ter uma conta do WhatsApp é prova de que o usuário confirmou o número e que ele nunca foi usado por ninguém para se registrar no WhatsApp posteriormente. No entanto, não é uma garantia a respeito da localização física do cartão SIM.

Por outro lado, se o telefone de um usuário for perdido ou roubado, ele poderá desativar a conta do WhatsApp. Para saber mais sobre como os usuários podem desativar suas contas, consulte as perguntas frequentes sobre telefones perdidos ou roubados.

Se o número de telefone de um cliente ficar inativo, mas ele continuar usando o WhatsApp, ele continuará a acessar o WhatsApp até que o número seja reatribuído ou registrado novamente.

WhatsApp strongly verifies whether number provided actually belongs phone. The fact that a user has a WhatsApp account is proof that they confirmed the number and no one else has used that number to register on WhatsApp subsequently. However, It is not a guarantee of the physical location of the sim.

On the other hand, if users phone is lost or stolen, they can deactivate their WhatsApp account. You may read to know more about how users can deactivate their account here.

Esse erro ocorre quando o banco de dados não foi configurado corretamente.

  • Verifique se você está usando o MySQL 5.7 ou posterior ou o PostgreSQL 9.5.x, 9.6.x ou 10.x.
  • A senha do seu banco de dados não deve conter nenhum destes caracteres: ?{}&~!()^.
  • Se estiver usando o AWS, o nome da pilha deverá ser curto. Consulte a documentação sobre instalação para obter mais informações.

Sim. A conexão TCP é necessária. Caso sua empresa não possa abrir portas adicionais, você poderá usar SSL encerrado.

Consulte a documentação de Requisitos da rede para obter mais informações.

Esse é um problema conhecido. Em alguns casos, atualizar o Cliente da API do WhatsApp Business usando os scripts do CloudFormation também exige uma atualização da pilha de banco de dados do RDS. A nova pilha do RDS não poderá ter o mesmo nome de host da pilha original, e os contêineres do Docker não conseguirão se conectar ao banco de dados. A solução é usar SSH na instância do EC2 criada pelo CloudFormation e atualizar o arquivo whatsapp.conf com o novo nome de host e, então reiniciar os contêineres do Docker para que possam obter as novas configurações.

Sim. Envie uma chamada de API ao nó contacts antes de enviar uma mensagem. As informações da verificação de contacts são salvas em cache no contêiner, e não fazer isso poderá causar um erro do tipo Unkown Contact. Consulte a documentação sobre a verificação de contatos para obter mais informações.

Use the mcdockerreset script and tear down the webapps then use the mcdockersetup script to bring up a new webapp.


Reason: When the webapp first connects to the DB, it creates the database.yml file. it will never try to create it again. The coreapps will just not start up on a bad DB config; however, the webapp will, so you see the master and slave nodes in your DB because they were setup correctly once you got around all the DB and script issues but the webapps were started by the script in a bad state to begin with.

Se um Webhook falhar ao enviar um retorno de chamada, ele será colocado em uma fila para que sejam feitas novas tentativas. Retornos de chamada enviados após a falha no retorno de chamada inicial não serão recebidos. Depois que o primeiro retorno de chamada for bem-sucedido, os outros serão enviados.

O Cliente da API do WhatsApp Business envia retornos de chamada do Webhook para você por meio do contêiner do Coreapp. Portanto, seu ponto de extremidade do Webhook precisa ser configurado para aceitar solicitações de entrada do Coreapp.

Você deve registrar um segundo número de telefone e rotacionar uma segunda pilha do CloudFormation ou instância do Docker para fazer testes. Se você tiver dois Clientes da API do WhatsApp Business ativos usando o mesmo número de telefone, o servidor desconectará você, pois as chaves de criptografia entrarão em conflito. Recomendamos ter um segundo ambiente que você possa usar para testar sua instância não relacionada à produção antes de iniciar qualquer tipo de migração do seu cliente de produção.

É necessário usar o MySQL 5.7.x ou PostgreSQL 9.5.x, 9.6.x, 10.x. Usar uma versão anterior causará um erro do tipo Unable to initialize config store.

Quando você recebe o ID de uma mensagem que enviou, isso significa que a solicitação de mensagem foi armazenada no banco de dados. O Cliente da API do WhatsApp Business continuará tentando enviar a mensagem até receber o reconhecimento do servidor do WhatsApp. Não há um limite de tempo para esse processo. Depois disso, o servidor do WhatsApp tentará entregar a mensagem ao telefone do usuário. Se o telefone do usuário não estiver online, a mensagem ficará armazenada por 30 dias até ser descartada pelo servidor do WhatsApp.

As tabelas de banco de dados armazenam informações relacionadas às configurações do aplicativo, conversas de bate-papo, mensagens, mídia, etc., que são exigidas para a operação do aplicativo.

Sua empresa não será notificada quando o número de telefone do WhatsApp de um usuário mudar. Se estiver usando o nó contacts, o status do número será invalid.

Não. Só é possível executar uma conta por instância. Se precisar de uma conta para testes, use outro número para essa segunda instância.

Verificar a integridade é gratuito e pode ser solicitado com a frequência necessária.

Leia a documentação sobre as estatísticas para saber mais sobre as estatísticas do aplicativo e do banco de dados que você pode solicitar. As estatísticas do aplicativo são armazenadas na memória, e é barato solicitá-las. As estatísticas do banco de dados exigem mais recursos e só devem ser solicitadas quando for necessário.

Ao usar o nó messages, é necessário definir o cabeçalho Content-Type como application/json para que o Cliente da API do WhatsApp Business possa analisar o corpo da mensagem. Também existe um cabeçalho Authorization, que deve ser definido e conter um token de acesso que não esteja expirado. Consulte a documentação sobre login e autenticação para obter mais informações sobre como obter um token e quando ele expira.

Seu sistema poderá ficar lento à medida que o espaço for sendo preenchido. Isso poderá ocorrer se houver muitos arquivos de mídia, mensagens e arquivos de registro grandes. Os arquivos de registro são rotacionados automaticamente, mas, se eles começarem a ficar muito grandes, será seguro excluí-los.

As mensagens são armazenadas no banco de dados. Você pode excluir as mensagens conforme necessário. Além disso, se pass_through estiver definido como falso nas configurações do aplicativo, todas as mensagens serão salvas no banco de dados até que sejam explicitamente excluídas.

Os arquivos de mídia enviados pelos usuários são baixados para os volumes de mídia. Fica a critério da empresa decidir quais arquivos de mídia deverão ser excluídos, mas, em geral, é seguro excluir arquivos de mídia. Você pode usar docker inspect your-container-id para verificar onde a pasta do volume de mídia está.

Messages are stored in the database. You can delete messages as necessary. Also, if the pass_through is set to false in the application settings, then all messages are saved in the database until they are explicitly deleted.

Media files that users send to you are downloaded to the media volumes. It is up to the business to decide which media files to delete, but it is generally safe to delete any media files. You can use docker inspect your-container-id to check where the media volume folder is.

Configure o MySQL localmente usando o Docker e seguindo o guia sobre MySQL no Docker.

Configure o PostgreSQL localmente usando o Docker e seguindo o guia sobre PostgreSQL no Docker.

Na maioria dos casos, é aconselhável executar o banco de dados em um servidor físico diferente dos contêineres do Webapp e do Coreapp. O servidor de banco de dados deve estar a apenas alguns milissegundos de latência do computador.

O momento de excluir arquivos de mídia fica a seu critério.

Após carregar arquivos de mídia, você receberá um ID da mídia, que poderá ser usado para enviar uma mensagem incluindo o elemento de mídia carregado. Quando você enviar a mensagem de mídia, a API do WhatsApp Business criptografará e carregará a mídia para os servidores do WhatsApp, onde ela permanecerá por um período de 14 dias. Depois disso, você poderá optar por excluir a mídia fornecendo o ID dela ou mantê-la para uso posterior. Embora recomendemos que você mantenha a mídia por 30 dias, fica a seu critério decidir qual será a política de retenção com base nas necessidades e no caso de uso da sua empresa.

Sim. O banco de dados pode ser usado de outras maneiras sem afetar as tabelas relacionadas ao WhatsApp.

Primeiramente, verifique todos os retornos de chamada em busca de erros críticos para diagnosticar o problema.

Caso veja a mensagem “Conflito: foram detectadas várias instâncias com o mesmo número”, você precisará verificar seus contêineres. A causa mais provável é que vários contêineres do Docker estejam tentando se conectar aos servidores do WhatsApp usando a mesma conta do WhatsApp. Você deve ter apenas um contêiner ativo e em execução. Caso tenha contêineres antigos, desative-os, e o erro desaparecerá.

Caso queira testar nossa solução de alta disponibilidade mais complicada, consulte a documentação sobre Alta Disponibilidade.

É possível criar listas de permissão tanto com nomes de host quanto com endereços IP.

Consulte a seção Nomes de host da documentação sobre Requisitos da rede para obter mais informações.

Sim! O WhatsApp permite que você formate o texto selecionado na mensagem com negrito, itálico, tachado ou espaçamento uniforme.

Sim. Os modelos de mensagem são compatíveis com todos os caracteres e formatações de mensagem do WhatsApp, incluindo emojis, negrito, itálico etc. Ao usar emojis, você precisará usar o caractere do emoji (copiar e colar) no lugar do unicode correspondente.

Números para ligações gratuitas são permitidos, desde de que o código do país seja incluído. Isso ocorre porque os números para ligações gratuitas sem o código do país não podem ser identificados exclusivamente, ou seja, o mesmo número pode existir em dois países diferentes.

Além disso, há mais complexidades envolvidas ao usar números para ligações gratuitas. Em geral, se você telefonar para um número para ligações gratuitas com o código do país de dentro desse país, a ligação falhará. Isso significa que, se os clientes do seu país tentarem telefonar para o número exibido no contato da empresa (com o código do país incluído), eles não conseguirão entrar em contato com você. Caso isso seja um problema, você deverá informá-los explicitamente.

Leia mais sobre números para ligações gratuitas aqui.

Não! Em qualquer situação, você só pode ter uma instância do Cliente da API do WhatsApp Business em execução para um único número de telefone. Se você registrar uma segunda instância, sua primeira instância será desconectada e falhará. Estamos trabalhando em uma solução adequada para que isso seja possível. Manteremos você informado sobre quaisquer atualizações.

As comunicações com usuários da WhatsApp Business API que gerenciam o ponto de extremidade da API em servidores que controlam são consideradas pelo WhatsApp como criptografadas de ponta a ponta, uma vez que não há acesso de terceiros ao conteúdo entre os pontos de extremidade.

Algumas organizações optam por delegar o gerenciamento do ponto de extremidade da WhatsApp Business API a um fornecedor de soluções de negócios de terceiros. Nesses casos, a comunicação ainda usa o mesmo protocolo de criptografia Signal. No entanto, como o usuário da WhatsApp Business API escolheu um terceiro para gerenciar o ponto de extremidade, o WhatsApp não considera essas comunicações como mensagens criptografadas de ponta a ponta. Em 2021, isso eventualmente também se aplicará a empresas que optarem por usar a versão baseada em nuvem da API hospedada pelo Facebook.

Além disso, se você usar HTTPS ao fazer chamadas para o cliente da WhatsApp Business API, esses dados serão criptografados com SSL (do seu cliente do backend até o cliente da WhatsApp Business API).

Consulte o artigo técnico Visão geral da criptografia do WhatsApp (em inglês) para mais informações.

Essa falha é causada por um erro em uma versão mais antiga do cliente do iOS. A expectativa é que o número de erros diminua ao longo do tempo, conforme a população atualiza seus dispositivos.

Não. Não há garantia de que as mensagens serão entregues na mesma ordem na qual foram enviadas. Se a ordem for essencial no seu caso de uso, a abordagem sugerida é a de acompanhar o retorno de chamada indicando que a primeira mensagem foi entregue antes de enviar a segunda.

Existe um script que pode ser acionado externamente para limpar registros antigos de um contêiner:

docker exec CONTAINER_NAME /opt/whatsapp/bin/cleanup.sh

O script funciona para contêineres do Webapp e do Coreapp. Ao executar o script, os arquivos de registro antigos serão removidos, e somente 30 arquivos de registro do contêiner serão mantidos.

Observação: não envie a mesma mensagem repetidamente para o mesmo destinatário usando a WhatsApp Business API.

Existem vários motivos que podem fazer com que sua taxa de entrega não seja de 100%. Isso pode ocorrer devido a usuários com acesso esporádico à rede ou que ficam inativos por um período de tempo ou para criar uma experiência de usuário de alta qualidade.

As mensagens que podem ser entregues com o WhatsApp terão uma taxa de entrega muito alta. No entanto, existem muitas razões pelas quais uma mensagem pode não ser entregue. Para ter acesso ao status exato de uma mensagem, monitore seus retornos de chamada. Isso é diferente de enviar mensagens por SMS, em que você não tem acesso ao status final de entrega e reenviar a mensagem pode gerar um resultado diferente.

As mensagens podem não ser entregues porque o smartphone do usuário está fora de serviço ou sem bateria, ou porque ele perdeu o aparelho, está comprando um novo e desabilitou o SIM. É possível que haja erros na capacidade do cliente da empresa de se conectar à rede. Também pode haver falha na entrega de retornos de chamada (Webhooks). Você pode monitorar essas situações usando o nó health. É possível ativar os retornos de chamada de recebimento do servidor para saber se a mensagem chegou à nuvem do servidor do WhatsApp.

Quando um usuário se conectar novamente à rede, todas as mensagens que foram enviadas por você serão entregues a ele. Receber mais de uma mensagem com o mesmo conteúdo gera uma experiência ruim para o usuário. Isso aumenta a probabilidade de ele reclamar ou bloquear você. Você também corre o risco de ter sua conta banida.

Quando você envia uma mensagem e recebe um número de identificação de mensagens da API, isso significa que foi feito o possível para efetuar o envio. Não reenvie o mesmo conteúdo para o mesmo destinatário.

Caso suas taxas de entrega se mantenham baixas por um período prolongado, crie um tíquete no Suporte Direto.

O cliente da API Local do WhatsApp Business precisa de um banco de dados para armazenar chaves que descriptografam mensagens entre uma empresa e os clientes. Todas as mensagens do WhatsApp são criptografadas com chaves de remetente e destinatário. As chaves do cliente são armazenadas nos dispositivos móveis deles, já as chaves da empresa são armazenadas no banco de dados. Saiba mais sobre a Segurança do WhatsApp.

A API de Nuvem do WhatsApp Business é uma alternativa em que a Meta hospeda o banco de dados de uma empresa. Essa API permite que você implemente as APIs do WhatsApp Business sem o custo de hospedagem dos seus servidores. Saiba mais.

Não. O Cliente da API do WhatsApp Business abre uma conexão TCP de saída às portas 5222 ou 443 nos servidores do WhatsApp. O tráfego ocorre sobre essa conexão de longa duração. Normalmente, os firewalls classificam isso como a permissão para “tráfego de saída e o tráfego estabelecido”. É claro que, depois de estabelecida a conexão, o fluxo de pacotes ocorrerá em ambas as direções, mas o início da conexão parte do Cliente da API do WhatsApp Business, por isso não é necessário ter uma regra para permitir conexões de entrada.

MySQL e PostgreSQL são compatíveis. Se executar o Docker por conta própria, você precisará fornecer um banco de dados MySQL/PostgreSQL ao qual os contêineres possam se conectar. O modelo do AWS configura um banco de dados MySQL por padrão.

Os requisitos dependem da carga e da situação. A solução pode ser executada em qualquer computador conectado à Internet que possa executar o Docker. Por exemplo, testes simples podem ser feitos em um notebook.

Para configurar um servidor de produção de instância única, recomendamos pelo menos 250 GB de SSD, 16 GB de RAM e uma CPU com quatro núcleos. Não é recomendado usar um HDD, pois as velocidades de entrada e saída se tornarão gargalos com a carga.

Para configurar um servidor de produção de Multiconexão, recomendamos pelo menos 50 GB de SSD, 4 GB de RAM e uma CPU com dois núcleos para cada contêiner do Coreapp/Master/Webapp.

Na maioria dos casos, é aconselhável executar o banco de dados em um servidor físico diferente dos contêineres do Webapp e do Coreapp. O servidor do banco de dados deve estar a apenas alguns milissegundos de latência do computador.

Essa configuração é compatível com o envio de aproximadamente 20 mensagens por segundo.

Com certeza! Entre em contato com seu representante do WhatsApp para fazer essa solicitação.

No momento, não é possível fazer isso. Caso não consiga atender a todas as respostas de seus clientes recebidas pelo WhatsApp, sugerimos enviar uma mensagem de resposta automática para orientá-los a entrar em contato por meio dos canais de suporte adequados.

Em um contexto com usuários comuns, isso é intencional quando o remetente não está em sua agenda de contatos e você nunca enviou uma mensagem a ele. No contexto comercial, a empresa deve usar os modelos de mensagem ao entrar em contato com um usuário pela primeira vez, com o objetivo de estabelecer uma relação de confiança. Depois que isso for feito, o Cliente da API do WhatsApp Business poderá renderizar o link para torná-lo clicável.

Em um contexto com usuários comuns, isso é intencional quando o remetente não está em sua agenda de contatos e você nunca enviou uma mensagem a ele. No contexto comercial, a empresa deve usar os modelos de mensagem ao entrar em contato com um usuário pela primeira vez, com o objetivo de estabelecer uma relação de confiança. Depois que isso for feito, o Cliente da API do WhatsApp Business obedecerá à configuração de download automático no aplicativo.

Infelizmente, será necessário usar um número de telefone que possa receber SMS ou chamadas de voz para que possamos enviar o código de registro. Códigos de registro manuais já foram permitidos, mas não são mais. Números de telefone que usaram códigos de registro manuais anteriormente continuarão funcionando conforme necessário. Para novos números de telefone, os códigos de registro só serão enviados por meio de SMS ou chamadas de voz.

Caso queira usar um número 1800 ou um número para ligações gratuitas, leia este guia.

No momento, não existe uma maneira de ver quantos usuários bloquearam sua empresa. O melhor indicador seria acompanhar os retornos de chamada indicando o status e, se você não receber o status delivered, isso significará que o usuário bloqueou sua empresa ou está sem uma conexão de rede. Consulte a documentação do Webhook para obter mais detalhes.

Se um usuário tiver bloqueado sua empresa, a API Contatos continuará retornando o número de telefone como um usuário válido do WhatsApp. No entanto, se você enviar uma mensagem, ela nunca será recebida. Em caso de mensagens pagas, você não será cobrado.

Sim. Podemos configurar um novo número de telefone ou alterar o nome verificado quando você estiver pronto para entrar no ar.

O tamanho máximo para o carregamento de qualquer arquivo é 64 MB. Esse limite também se aplica a qualquer imagem, documento ou vídeo que você enviar em uma mensagem.

Para encontrar o ponto de montagem de seu volume de mídia, você pode executar um comando do Docker.

Solicitação

docker volume inspect whatsappMedia

Resposta

[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data",
        "Name": "whatsappMedia",
        "Options": {},
        "Scope": "local"
    }
]

Depois, para ver todos os arquivos de mídia de entrada, você pode executar o comando ls com o caminho de arquivo Mountpoint recebido:

ls /var/lib/docker/volumes/whatsappMedia/_data/

Para a configuração do AWS, o volume de mídia é montado em um caminho /mnt/wa/media no host.

Não há mecanismos de limpeza para arquivos de mídia enviados nem recebidos. Para excluir seus arquivos de mídia manualmente, encontre-os no seu sistema de arquivos.

Para reiniciar os contêineres do Docker, execute o seguinte código:

Contêiner do Docker do Coreapp

docker restart wacore<Current_WABA_Version>

Contêiner do Docker do Webapp

docker restart webapp<Current_WABA_Version>

Você pode verificar qual é a versão usando

docker ps

Sim! Por padrão, o Cliente da API do WhatsApp Business tenta se comunicar usando chatd sobre a porta 5222. Para obter a melhor experiência, abra a porta 5222 para todo o tráfego de saída. Fazer isso não causa um problema de segurança, pois trata-se apenas do tráfego de saída do seu data center.

Caso não seja possível abrir a porta 5222, o Cliente da API do WhatsApp Business tentará usar a porta 443. Se seu firewall ou proxy continuar encerrando as conexões, entre em contato com a equipe do WhatsApp enviando uma pergunta por meio do Suporte Direto para fazer uma depuração.

Funcionando conforme o esperado
Use nosso depurador de compartilhamento: https://developers.facebook.com/tools/debug/sharing/. O depurador de OG não está mais em uso.
The behavior is by design. All newly created accounts go through a classification process which may last up to 45 minutes. During that time, these accounts won't be able to login to any app.
As imagens em carrossel não retornam "media_url" no final do nó da media em carrossel porque um carrossel é uma coleção de imagens. Em vez disso, os usuários devem consultar os {media_url} children para ver o "media_url" dos nós children.
Em versões 2.9 e superiores, começamos a filtrar todas as publicações não qualificadas devido à necessidade de uma forma de pagamento para as contas de anúncios. Verifique se a conta de anúncios tem uma forma de pagamento válida.
Esse campo não será mais suportado pela API. Você pode encontrar todas as informações fornecidas por esse campo na seguinte ferramenta: https://developers.facebook.com/tools/app-ads-helper/
Por design, o thread_key não será incluído no evento do webhook
Quando o “estimate_DAU” for 0, retornaremos automaticamente o lance sugerido padrão, que será 0 para todas as entradas O motivo disso é que não mostramos o tamanho do público para as campanhas que usam Público Personalizado.
Para o Público Personalizado do site, retornaremos 0 como identificação do pixel e dias de retenção se ele tiver várias seções, já que não podemos identificar exclusivamente a retenção com base em mais de uma seção. Para buscar a respectiva regra, é necessário especificar a rule_v2, em vez da regra: OBTER audience_id?fields=rule_v2
At this time, "Force Web OAuth Reauthentication" feature is unsupported for Device Login. To enable device login feature, please turn off "Force Web OAuth Reauthentication" under Facebook Login settings.
Notifications on canvas games are not guaranteed. We have systems in place which will determine if a notification is of low or high signal automatically and filter users' jewel notifications accordingly. This means that not all notifications will appear within the users jewel notification.
We have privacy policies in place to prevent content generated from an Application that is not visible, to be distributed to the public. Also in effect is the app is in dev mode.
You should be able to add pages to your app that meet a few conditions:
  • The Page must be categorized as "App Page"
  • You should have access to the page via a role
  • The App Page should not already be linked to an existing app
  • The Page must have the same name (or a subset of the name) of the app
/page/* — User information will not be included in GET responses for any objects owned by (on) a Page unless the request is made with a Page access token. This affects all nodes and edges that return data for objects owned by a Page.
The business management permission is a granular permission, which means that it can be granted to some businesses and not granted to others. The access token debugging tool will show the access token has the permission even if it was granted for only some apps.
We maintain a specific cache on Android which can take some time to refresh. However, in iOS, you should see the updates almost instantly when you refresh the article.
The app must be subscribed to 'messaging_account_linking' Webhook event for Account Linking to work. You can subscribe to the event by going to the Messenger tab of your Application Settings.
In order to access the Leadgen information received from a Webhook you needed to be:
  • An admin of the campaigns
  • A full admin of the page
This message is usually shown if the user has an old Facebook for Android app installed on their device. If the user removes the old app and install the latest one, this message should disappear. If not, then please report a bug.
1. The message shown on screen does not mean the user has read it. In order to trigger a read receipt, there need to be some movements on the user side. (The user closing the input box is definitely a movement) An indicator of a message being read is the message text turns from the bold state into a normal state in the preview;
2. There won't necessarily be a read receipt for each message. The read receipt means that ALL messages before this watermark timestamp have been read by the user.
Unique fields are not supported with hourly breakdowns. Unique fields are those prepended with `unique_*` or `reach`.
Há uma diferença entre as solicitações de jogo enviadas de um aplicativo para o usuário e as solicitações de jogo enviadas de um usuário para outro:
  • As solicitações de jogos do aplicativo para o usuário são enviadas pelo ponto de extremidade da API /apprequests. Elas geram solicitação no feed de atividade em jogos, mas não geram uma notificação no site. https://developers.facebook.com/docs/graph-api/reference/app-request#Creating
  • As solicitações de jogo de usuário para usuário são enviadas pelo diálogo de solicitação. Elas geram solicitações no feed de atividade em jogos e notificação no site. https://developers.facebook.com/docs/games/services/gamerequests
  • Além disso, há também notificações do aplicativo para usuário que são enviadas pelo ponto de extremidade da API /notifications. Elas geram uma notificação, mas não geram solicitação no feed de atividade em jogos. https://developers.facebook.com/docs/games/services/appnotifications
A publicação é direcionada para a região ou o país. Por exemplo se a publicação for direcionada para "US ou CA", o usuário transmitirá a regra se estiver nos Estados Unidos (US) ou na Califórnia (CA). Se você desejar restringir o direcionamento para uma região em um país, apenas a região deve ser especificada.
A estrutura de Páginas Globais reduz as curtidas na Página. Depois que uma estrutura de Páginas Globais for configurada, os fãs serão migrados para diferentes Páginas dentro da estrutura com base no direcionamento de cada Página. Como resultado, a alteração em page_fans não corresponderá à diferença entre page_fan_adds e page_fan_removes.
Os Públicos Personalizados recentemente criados podem não ser obtidos via API. Isso ocorre devido ao atraso da retenção e da replicação entre datacenters.
Não é possível obter as identificações da publicação para URLs internas do Facebook usando o ponto de extremidade ?ids=. Conforme documentado (https://developers.facebook.com/docs/graph-api/reference/v2.8/url), essa borda é destinada a URLs externas.