A Extensão do Facebook para Empresas (FBE, pelas iniciais em inglês) usa o Catálogo para importar o inventário da empresa. Ela possibilita o uso de vários recursos, como anúncios dinâmicos, Lojas da Página e cartão de serviço em destaque. Apesar de ser uma parte opcional da integração, ela é obrigatória para alguns recursos.
O catálogo do Facebook tem o próprio conjunto de APIs. Porém, a FBE está integrada a algumas delas para que você atualize com facilidade o inventário de uma empresa na sua plataforma (sem a necessidade de acompanhar os IDs do catálogo do Facebook).
Consulte os campos compatíveis para garantir que os campos necessários sejam preenchidos corretamente no catálogo de anúncios dinâmicos e nos casos de uso comercial (Loja da Página, Compras no Instagram e Marketplace).
Há duas formas de atualizar os inventários:
Recomendamos usar um dos métodos push (API em Lote ou API de Carregamento Único do Feed), pois eles permitem atualizar o inventário instantaneamente e reduzem a carga no servidor dos dois lados. O access_token
usado aqui é o mesmo retornado pelo Login de Empresa e pelo Webhook.
Você precisa enviar o inventário completo da empresa assim que receber um novo Webhook de instalação. Sempre que uma empresa alterar o próprio inventário no seu site, será necessário enviar uma atualização.
Recomendada para a maioria das empresas de comércio eletrônico. A API em Lote é padrão da API de Catálogo do Facebook e útil para empresas que têm inventários grandes (com mais de 100 itens) e/ou precisam atualizar os itens com frequência.
Disponível para empresas com serviços com hora marcada. A API de Carregamento Único do Feed é padrão da API de Catálogo do Facebook e útil para empresas que têm inventários pequenos (com menos de 100 itens).
Nesse método, você envia um inventário completo sempre que uma atualização é feita, o que substitui totalmente o inventário no catálogo do Facebook.
Etapa 1. Obtenha o ID do feed criado durante a instalação da FBE enviando o ID do catálogo conectado (a partir da notificação de webhook ou do ponto de extremidade da API de instalação da FBE):
curl -G \ -d "access_token=<ACCESS_TOKEN>" \ https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_feeds
Saiba mais sobre a API de Feed de Produtos.
Etapa 2. Faça carregamentos únicos no feed:
Exemplo – Arquivos de feed hospedados em uma localização pública.
curl -X POST \
-F 'url="http://www.example.com/sample_feed.xml"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com
url=http%3A%2F%2Fwww.example.com%2Fsample_feed.xml
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{FEED_ID}/uploads',
array (
'url' => 'http://www.example.com/sample_feed.xml',
),
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
"/{FEED_ID}/uploads",
"POST",
{
"url": "http:\/\/www.example.com\/sample_feed.xml"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Exemplo – Arquivos de feed diretamente do computador local. O caminho do arquivo precisa ser alterado de acordo com o caso de uso.
curl -X POST \
-F 'file=@catalog.csv;type=text/csv' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com
file=%40catalog.csv%3Btype%3Dtext%2Fcsv
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{FEED_ID}/uploads',
array (
'file' => '@catalog.csv;type=text/csv',
),
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
"/{FEED_ID}/uploads",
"POST",
{
"file": "@catalog.csv;type=text\/csv"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Todos os formatos de resposta e solicitação são iguais aos documentados para o ponto de extremidade original.
Vertical | Exemplo de feed em CSV | Exemplo de feed em TSV | Exemplo de feed em XML |
---|---|---|---|
COMÉRCIO ELETRÔNICO | |||
HORAS MARCADAS |
Consulte os campos compatíveis com o catálogo de serviços com hora marcada.
Não recomendamos usar este método porque ele ocasiona inventários obsoletos até pulls subsequentes. No entanto, ele é útil para empresas menores com hospedagem própria e um arquivo de inventário que pode ser acessado publicamente. Se você escolher usar esse método, será preciso especificar o recurso catalog_feed_scheduled
na configuração da empresa por meio do Login de Empresa. Quando isso estiver definido, buscaremos o inventário da empresa na URL pública especificada com regularidade, independentemente de atualizações.
Saiba mais sobre o pull de feed agendado.