> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# API do Facebook Page

> Opções para publicar usando a API do Facebook

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<Info>
  Se você tiver problemas para conectar o Facebook, consulte o [guia de
  solução de problemas](/help-center/technical-support/facebook_posting_issues).
</Info>

## Publicando no Facebook

Publicar usando a API do Facebook requer a conexão de uma Facebook Page. O Facebook não permite que contas pessoais sejam conectadas.

JSON para uma publicação básica com link e imagem em uma Facebook Page:

```json Facebook Post with Image theme={"system"}
{
  "post": "The best FB post ever #best https://www.facebook.com", // empty string is allowed
  "mediaUrls": ["https://img.ayrshare.com/012/gb.jpg"],
  "platforms": ["facebook"]
}
```

<ul class="custom-bullets">
  <li>
    O Facebook mostrará automaticamente uma prévia do link na publicação, a menos que haja uma imagem ou
    vídeo incluído. No exemplo acima, a imagem será exibida. Remover a imagem fará com que a
    prévia do link seja mostrada.
  </li>

  <li>
    Se seu vídeo não terminar em uma extensão de vídeo conhecida, como mp4, use o parâmetro `isVideo`.
    Consulte o [endpoint /post](/apis/post/post) para detalhes.
  </li>

  <li>
    O Facebook também suporta envio de mídia sem texto de publicação. Se você não quiser incluir texto na publicação,
    envie uma String vazia `post: ""`.
  </li>

  <li>Consulte as [Diretrizes de mídia do Facebook](/media-guidelines/facebook_pages) e a [Autorização do Facebook](/dashboard/connect-social-accounts/facebook) para mais informações.</li>
</ul>

<Warning>
  A API do Facebook não suporta combinar imagens e vídeos em uma única publicação. Você
  pode incluir várias imagens OU um único vídeo, mas não ambos.
</Warning>

## Imagens em carrossel

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

Publique imagens do Facebook Carousel via API do Ayrshare com o parâmetro `carousel` do corpo.

```json Facebook Carousel Post theme={"system"}
{
  "faceBookOptions": {
    "carousel": {
      // The URL of the "See More At" button - required
      "link": "URL of See More At...",
      "items": [
        // 2 min, 10 max elements in the array
        {
          "name": "Image name", // optional
          "link": "URL when image clicked", // required
          "picture": "URL of image" // required
        },
        {
          "name": "Image name",
          "link": "URL when image clicked",
          "picture": "URL of image"
        }
      ]
    }
  }
}
```

<ul class="custom-bullets">
  <li>O parâmetro `link` de nível superior é a URL no final do carrossel.</li>

  <li>
    O `items` é um array de objetos contendo os seguintes valores. Mínimo de 2 elementos e máximo de 10
    elementos no array items.
  </li>

  <li>`picture` - URL da imagem do carrossel.</li>
  <li>`link` - URL para a qual o usuário é direcionado ao clicar na imagem.</li>
  <li>`name` - (opcional) Texto exibido em cada card de imagem.</li>
</ul>

**Observação:** Não use `media_urls` com `carousel`. Se `media_urls` for usado, `carousels` será ignorado.

Consulte nosso [Guia de carrossel do Facebook](https://www.ayrshare.com/blog/post-a-series-of-facebook-images-as-a-carousel/) para mais informações.

## Facebook Reels

Você pode publicar um vídeo no Facebook Reels com as seguintes `facebookOptions`.

<Note>
  A Meta aplica um limite de 30 Reels por Facebook Page conectada em qualquer período de 24 horas para evitar
  spam e garantir a qualidade da plataforma. Este é um limite móvel, ou seja, conta as 24 horas mais recentes,
  não dias de calendário.
</Note>

```json Facebook Reels Post theme={"system"}
{
  "post": "The description of the video",
  "platforms": ["facebook"],
  "mediaUrls": ["https://img.ayrshare.com/012/reel.mp4"],
  "faceBookOptions": {
    "reels": true,
    "title": "Super title for the Reel", // optional
    "thumbNail": "https://img.ayrshare.com/012/reel-thumbnail.jpg" // optional
  }
}
```

<ul class="custom-bullets">
  <li>
    `reels`: Defina como `true` para publicar o vídeo em Reels. Obrigatório se você quiser publicar em Facebook
    Reels.
  </li>

  <li>
    `title`: O título do vídeo, com máximo de 255 caracteres. Textos com mais de 255 caracteres serão
    truncados. Opcional.
  </li>

  <li>
    `thumbNail`: A thumbnail (imagem de capa) do vídeo. A thumbnail deve ser uma URL para um arquivo JPEG ou
    PNG. A thumbnail deve ter menos de 10MB de tamanho. Opcional.
  </li>
</ul>

Consulte os [requisitos de vídeo da API do Reels](/media-guidelines/facebook_pages#reels) ou um [exemplo de uso da API do Facebook Reels](https://www.ayrshare.com/blog/facebook-reels-api-how-to-post-fb-reels-using-a-social-media-api/).

<Warning>
  A Meta ocasionalmente tem problemas ao processar Facebook Reels em algumas contas. Mesmo que uma resposta de erro seja retornada, o Reel pode ter sido publicado.

  Se você encontrar erros nos Facebook Reels, recomendamos verificar o status do Reel. Se a publicação *não tiver sido* publicada, você pode tentar [publicar novamente](/apis/post/retry-post). Isso geralmente é bem-sucedido.

  Você pode usar a URL contida no campo `verifyReelsUrl` para verificar o status. Certifique-se de usar a mesma Profile Key da publicação original. Aguarde até o horário em `verifyReelsIn` para verificar o status do Reel (10 minutos). Se um código HTTP `400` for retornado, a publicação falhou e você pode tentar a publicação mais uma vez.

  ```json Facebook Reels Post Error theme={"system"}
  {
    "action": "post",
    "status": "error",
    "code": 108,
    "message": "Facebook Error: Facebook cannot process your post at this time. Please try again. ",
    "detailsData": {
      "id": "104619420979033_36930641143",
      "verifyReelsUrl": "https://api.ayrshare.com/history/36930641143?searchPlatformId=true&platform=facebook",
      "verifyReelsIn": "2024-01-26T00:07:05.170Z",
      "postUrl": "https://www.facebook.com/1046194209_36930641143",
      "reels": true
    },
    "retryAvailable": true,
    "platform": "facebook"
  }
  ```
</Warning>

## Facebook Stories

Publique Facebook Stories em Facebook Pages, seja como foto ou vídeo.

<ul class="custom-bullets">
  <li>
    Facebook Stories não suportam texto de publicação — qualquer texto fornecido no campo `post`, incluindo
    menções, será ignorado.
  </li>

  <li>
    Uma foto ou vídeo enviado para um story não pode ter sido usado em uma publicação anterior.
  </li>

  <li>Um story de vídeo não pode exceder 60 segundos.</li>

  <li>
    Ative o [Stories Archive](https://www.facebook.com/help/2058997717520567) para conseguir fazer GET de
    stories.
  </li>
</ul>

```json Facebook Stories Post theme={"system"}
{
  "post": "", // Ignored by stories
  "platforms": ["facebook"],
  "mediaUrls": ["https://img.ayrshare.com/012/stories.mp4"],
  "faceBookOptions": {
    "stories": true
  }
}
```

Consulte os [requisitos de imagem e vídeo da API de Stories](/media-guidelines/facebook_pages#stories).

## Legendas de mídia

Defina uma legenda do Facebook para cada imagem de mídia publicada.

Aceita um array de strings de legenda. Cada elemento deve corresponder a uma URL de mídia. Por exemplo, \["This is my best pic", "😃 here is the next one"] refere-se à 1ª e 2ª URLs em `mediaUrls`.

```json Facebook Media Captions theme={"system"}
{
  "faceBookOptions": {
    "mediaCaptions": ["This is my best pic", "😃 here is the next one"]
  }
}
```

## Marcação de localização

Uma tag de localização do Facebook é especificada por um `locationId`, que é um ID de Facebook Page ou nome de Facebook Page. Por exemplo, o Page ID do [Guggenheim Museum](https://www.facebook.com/guggenheimmuseum) é `7640348500` ou o nome da Facebook Page `"@guggenheimmuseum"`. As Pages devem estar associadas a uma localização física.

```json Facebook Location Tagging theme={"system"}
// Using the Facebook Page Id - must be associated with a location
{
  "faceBookOptions": {
    "locationId": 7640348500 // Guggenheim Museum Page Id
  }
}
```

Você pode consultar o `locationId` (Page Id) com o [endpoint brand](/apis/listen/search/fb-page-search). Observe que a Page deve ter uma localização registrada, ou o locationId retornará um erro.

Não suportado em publicações de texto, imagens, reels e stories. Vídeos não são suportados pela Meta para marcação de localização.

## Segmentação de público

Ao criar uma publicação de Page no Facebook, você tem a opção de limitar sua visibilidade a um público específico usando dois tipos de segmentação:

1. Facebook Targeting: Permite definir o público da sua publicação com base em fatores como idade, gênero, localização e status de relacionamento. Ao definir esses parâmetros, você garante que sua publicação seja exibida apenas para pessoas que atendem aos critérios especificados.
2. Facebook Feed Targeting: Esta opção permite refinar ainda mais a visibilidade da sua publicação nos News Feeds do seu público-alvo.

Você pode usar cada opção de segmentação individualmente ou combiná-las.

### Targeting

O Facebook targeting [limita o público](https://www.facebook.com/help/352402648173466) para a publicação de conteúdo a demografias específicas. Qualquer pessoa fora dessas demografias não conseguirá visualizar este conteúdo. Isso não substituirá quaisquer restrições demográficas a nível de Page que estejam em vigor.

Campos demográficos disponíveis para `targeting`:

<ul class="custom-bullets">
  <li>
    `ageMin`: Limita a idade mínima que pode ver as publicações. Valores aceitos: 13, 15, 18, 21 ou
    25\. Outras idades serão rejeitadas.
  </li>

  <li>
    `countries`: Também conhecido como geofencing, você pode limitar os países que podem ver a publicação. Array
    de [códigos de país](/iso-codes/country). O número máximo de países que podem ser segmentados é
    25\. Se precisar segmentar mais de 25 países, ou restringir certos países, consulte [Restrições por país em Facebook Page](/help-center/technical-support/facebook_page_country_restrictions).
  </li>
</ul>

```json Facebook Targeting theme={"system"}
{
    "faceBookOptions": {
        "targeting": {
            "ageMin": 18,
            "countries": ["DE", "BR"]
    }
}
```

### Feed Targeting

Pessoas nesses grupos de segmentação do feed do Facebook têm mais probabilidade de ver esta publicação; outras têm menos probabilidade, mas ainda podem vê-la. Use targeting (veja acima) se quiser garantir a restrição.

Campos demográficos disponíveis para `feedTargeting`:

<ul class="custom-bullets">
  <li>
    `ageMin`: Limita a idade mínima que pode ver as publicações. Valor inteiro 13 ou superior. Padrão é
    0\.
  </li>

  <li>`ageMax`: Limita a idade máxima que pode ver as publicações. Valor inteiro 65 ou inferior.</li>

  <li>
    `countries`: Também conhecido como geo targeting, você pode indicar os países que devem poder
    ver a publicação. Array de [códigos de país](/iso-codes/country).
  </li>

  <li>
    `collegeYears`: Segmenta a idade de graduação universitária para visualizar a publicação. Array de inteiros para
    ano de formatura na universidade.
  </li>

  <li>
    `educationStatuses`: Segmenta o status educacional para visualizar a publicação. Array de inteiros para
    segmentação baseada no nível educacional. Use `1` para ensino médio, `2` para graduação e `3` para
    ex-aluno.
  </li>

  <li>
    `genders`: Segmenta o gênero para visualizar a publicação. Array de inteiros para segmentação de gêneros específicos.
    `1` segmenta todos os visualizadores masculinos e `2` femininos. O padrão é segmentar ambos.
  </li>

  <li>
    `relationshipStatuses`: Segmenta o status de relacionamento para visualizar a publicação. Array de inteiros para
    segmentação baseada no status de relacionamento. Use `1` para solteiro, `2` para 'em um relacionamento', `3` para
    casado e `4` para noivo. O padrão inclui todos os tipos.
  </li>
</ul>

```json Facebook Feed Targeting theme={"system"}
{
  "feedTargeting": {
    "ageMax": 30,
    "ageMin": 26,
    "countries": ["DE", "BR"],
    "genders": [1, 2],
    "relationshipStatuses": [1, 2]
  }
}
```

## Texto alternativo

Adicione texto alternativo (alt text) do Facebook a uma imagem ou vídeo. O alt text do Facebook é um recurso de acessibilidade usado para fornecer informações adicionais ao usuário e para leitores de tela.

Use `altText` no objeto `faceBookOptions`.

```json Facebook Alt Text theme={"system"}
{
  "faceBookOptions": {
    // Array of Alt Texts
    "altText": ["This is my best pic", "😃 here is the next one"]
  }
}
```

Cada alt text deve corresponder a uma imagem ou vídeo no array `mediaUrls`. O alt text será aplicado a cada imagem na ordem.

## Thumbnail de vídeo

Defina uma thumbnail (imagem de capa) para um vídeo do Facebook. Envie uma URL remota de um arquivo PNG ou JPG com as mesmas dimensões do vídeo e menos de 10 MB. A URL deve terminar em .png ou .jpg.

```json Example Facebook Video Thumbnail theme={"system"}
{
  "faceBookOptions": {
    "thumbNail": "https://octodex.github.com/images/Fintechtocat.png"
  }
}
```

## Título de vídeo

Adicione um título para o vídeo do Facebook com o parâmetro `title`.

```json Facebook Video Title theme={"system"}
{
  "faceBookOptions": {
    "title": "The best video ever!"
  }
}
```

## GIFs animados

Apenas uma URL em `mediaUrls` é permitida no array ao publicar um GIF animado no Facebook.
Se a URL da mídia não terminar em ".gif" ou ".GIF", defina o campo `isVideo` como `true`.

```json Facebook Animated GIF theme={"system"}
{
  "randomPost": true,
  "platforms": ["facebook"],
  // Set to true if the GIF URL does not end in .gif or .GIF
  "isVideo": false,
  // Only one URL is allowed in the array
  "mediaUrls": ["https://img.ayrshare.com/012/cat.gif"]
}
```

## Menções a Facebook Pages

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

Você pode mencionar outra Facebook Page, também conhecido como Facebook mentions ou Facebook tagging, incluindo o nome ou ID da Facebook Page no texto da publicação.
O Facebook não permite menções ou tags de perfis pessoais ou grupos.

Inclua uma menção com a seguinte @menção:

`@page-name` ou `@[page-id]`

### Menção com nome de Page

Um exemplo de texto de publicação com um nome de Page. Você pode encontrar o nome da Page na URL do Facebook, por exemplo [https://www.facebook.com/Ayrshare](https://www.facebook.com/Ayrshare)

```json Facebook Page Mention with Page Name theme={"system"}
{
  "post": "This is the best social media api by @Ayrshare"
}
```

O Ayrshare fará um esforço para encontrar a Page correspondente com base no nome, mas às vezes uma correspondência pode não ser encontrada. Um método mais confiável é usar um Page ID.

### Menção com Page ID

Um exemplo de texto de publicação com um Page ID; observe o uso de \[]. Veja abaixo como encontrar o Page ID.

```json Facebook Page Mention with Page ID theme={"system"}
{
  "post": "This is the best social media api by @[738681876342836]" // Ayrshare Page ID
}
```

O Facebook Page ID será resolvido para a Page correspondente e ***notificará a Page mencionada***.

<Warning>
  Use a menção a Pages com cuidado, mencionando apenas Pages com as quais você tem associação. Você deve ter o cuidado de nunca fazer spam.

  Ao mencionar uma Page, **o proprietário da Page será notificado via alerta e e-mail**. Se várias Pages reclamarem que você as está mencionando, o Facebook pode banir sua conta. Em geral, você deve marcar apenas Pages com as quais tenha um relacionamento estabelecido.

  A Facebook Page mencionada **deve permitir** que outras Pages a mencionem/marquem. As menções podem ser habilitadas nas configurações gerais da Page em "Others Tag this Page".

  Revise as [regras importantes](/testing/post-verification#mentions) sobre menções.
</Warning>

### Encontrar um Facebook Page ID

#### Endpoint Brand

Você pode buscar um usuário ou Facebook Page usando os [endpoints Brand](/apis/brand/overview).

#### No Facebook.com

1. Na Facebook News Feed, clique em **Pages** no menu lateral esquerdo.
2. Clique no nome da sua Page para ir até ela.
3. Clique em **About** no topo da sua Page. Se não vir, clique em **More**▼.
4. Role até encontrar seu **Page ID** abaixo de **MORE INFO**.

ou, se você quiser encontrar o ID de uma page que não é sua:

<ul class="custom-bullets">
  <li>
    Se a Facebook Page tiver uma URL como `https://www.facebook.com/ayrshare-1234567890`, então o ID
    é ***1234567890***.
  </li>

  <li>Se a Facebook Page tiver uma URL como:</li>
</ul>

`https://www.facebook.com/pages/ayrshare/123466789203`, então o Page ID é o número no final, como **123466789203**.

Você pode testar se o Page ID está correto acessando `https://facebook.com/page-id`; a URL será resolvida para a Page.

Também pode tentar uma ferramenta de terceiros de busca de Facebook Page, que não é suportada pelo Ayrshare, como: [https://lookup-id.com/](https://lookup-id.com/)

Se todos os outros métodos falharem, acesse a page do Facebook em um navegador e veja o código-fonte. No Chrome, clique com o botão direito e selecione "View Source". Em seguida, pesquise por `owning_profile_id` ou `profile_id` para encontrar o Page ID.

<Warning>
  Revise as [regras importantes](/testing/post-verification#mentions) sobre menções.
</Warning>

### Habilitar menções da Page

A Page deve permitir menções e marcações em publicações e comentários. Por padrão, isso está habilitado, mas você pode verificar fazendo login em facebook.com e alternando para sua Page.

1. Visualizando como sua Page, clique na **imagem de perfil** da sua page no canto superior direito.
2. Clique em **Settings & Privacy** -> **Settings**.
3. No menu Settings, clique em **Privacy**.
4. Clique em **Page and Tagging**.
5. Role até **Reviewing**.
6. Alterne as configurações para permitir tags e menções.

## Meta Business Suite

### Publicações de rascunho

Crie um rascunho de publicação do Facebook que aparece na aba [Meta Business Suite Draft](https://business.facebook.com/latest/posts/draft_posts). Rascunhos de publicações do Facebook são publicações que você começou a escrever, mas ainda não publicou. Você pode salvar rascunhos para retornar mais tarde, ou agendá-los para publicação em data futura.

Adicione o parâmetro `draft` a `faceBookOptions` para enviar a publicação como rascunho. Disponível para publicações de texto, imagens, vídeo e reels.

```json Facebook Draft Post theme={"system"}
{
  "faceBookOptions": {
    "draft": true
  }
}
```

### Horário de publicação agendada

Defina um horário de publicação agendada para publicações do Facebook que aparecem na aba [Meta Business Suite Scheduled Posts](https://business.facebook.com/latest/posts/scheduled_posts). Publicações agendadas do Facebook são publicações que você criou e agendou para publicação em data futura e são gerenciadas no Meta Business Suite. Isso pode ser útil para planejar suas publicações de mídia social com antecedência ou para publicar em horários em que você sabe que seu público é mais ativo.

Disponível para publicações de texto, imagens, vídeo e reels.

<Warning>
  O horário de publicação deve ser superior a 10 minutos a partir do horário atual e dentro de 29 dias da data atual.

  A menos que você precise gerenciar publicações do Facebook no Meta Business Suite, recomendamos usar a [data de agendamento padrão de publicação](/apis/post/overview#schedule-posts).
</Warning>

Adicione o parâmetro `scheduledPublishDate` a `faceBookOptions` para agendar um horário de publicação.

```json Facebook Scheduled Post theme={"system"}
{
  "faceBookOptions": {
    "scheduledPublishDate": "2023-09-28T21:44:06Z" // Future date in UTC
  }
}
```

## Prévia de link

Uma publicação do Facebook cria automaticamente uma prévia do link no corpo da publicação.
No entanto, se você quiser especificar outro link ou forçar a prévia do link, use o parâmetro `link` com a URL do link.

```json Facebook Link Preview theme={"system"}
{
  "faceBookOptions": {
    "link": "https://www.ayrshare.com/instagram-hashtag-guide/"
  }
}
```

Se um campo `mediaUrls` for incluído na requisição de publicação, a mídia será exibida em vez da prévia do link.

## Facebook Ads

Facebook Ads é uma forma de promover suas publicações para um público mais amplo.

<Card title="Facebook Ads" href="/apis/ads/overview" horizontal />

## Limites de caracteres

Consulte [Limites de caracteres do Facebook](/help-center/technical-support/character_limits#facebook-character-limits) para mais informações.

## Informações adicionais

### Como adiciono quebras de linha ou rich text a uma publicação do Facebook?

Quebras de linha do Facebook podem ser adicionadas a uma publicação com um [caractere de nova linha especial](/apis/post/overview#line-breaks).

Rich text, como negrito ou itálico, pode ser adicionado a uma publicação do Facebook com alguns [elementos HTML](/apis/post/overview#rich-text-posts).

### Por que vejo "Published by Ayrshare" em uma publicação?

Não se preocupe, isso só aparece na visualização de administrador. Consulte o [guia de solução de problemas](/help-center/technical-support/facebook_shows_published_by_ayrshare) para mais informações.
