Facebook Story
Gerencie stories do Facebook para uma loja específica. Crie, liste, atualize stories do Facebook.
Endpoint
GET /social-media/facebook/story/{dealer_id}
POST /social-media/facebook/story/{dealer_id}
GET /social-media/facebook/story/{dealer_id}/{id}
PUT /social-media/facebook/story/{dealer_id}/{id}
PATCH /social-media/facebook/story/{dealer_id}/{id}
Métodos
GET: Lista todos os stories do Facebook da lojaPOST: Cria um novo story do FacebookGET(com ID): Retorna detalhes de um story específicoPUT: Atualiza completamente um storyPATCH: Atualiza parcialmente um story
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
dealer_id | integer | ID da loja |
id | integer | ID do story (para detalhe, atualização ou remoção) |
Autenticação
Este endpoint requer autenticação via JWT. Inclua o token no header:
Authorization: Bearer {access_token}
X-Client-ID: {client_id do seu app}
X-Client-Secret: {client_secret do seu app}
Exemplo de Resposta
Lista de Stories
Status Code: 200 OK
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"dealer_id": 10,
"dealer_name": "LOJA TESTE",
"ad_id": 12345,
"asset": "https://media.integradordeanuncios.com.br/media/facebook_story/story_1.jpg",
"asset_type": 1,
"asset_type_display": "Imagem",
"asset_id": "facebook_asset_123",
"user_id": 1,
"user_name": "João Silva",
"created_at": "2024-01-15T10:30:00Z",
"published_at": "2024-01-15T10:35:00Z",
"status": 2,
"status_display": "Publicado",
"error": null,
"page_id": "123456789",
"facebook_post_id": "987654321",
"facebook_publish_status": 2,
"facebook_publish_status_display": "Publicado",
"story_url": "https://www.facebook.com/stories/987654321"
},
{
"id": 2,
"dealer_id": 10,
"dealer_name": "LOJA TESTE",
"ad_id": 12346,
"asset": "https://media.integradordeanuncios.com.br/media/facebook_story/story_2.mp4",
"asset_type": 2,
"asset_type_display": "Vídeo",
"asset_id": "facebook_asset_124",
"user_id": 1,
"user_name": "João Silva",
"created_at": "2024-01-16T14:20:00Z",
"published_at": null,
"status": 1,
"status_display": "Na Fila",
"error": null,
"page_id": "123456789",
"facebook_post_id": null,
"facebook_publish_status": 1,
"facebook_publish_status_display": "Na Fila",
"story_url": null
}
]
}
Detalhe de um Story
Status Code: 200 OK
{
"id": 1,
"dealer_id": 10,
"dealer_name": "LOJA TESTE",
"ad_id": 12345,
"asset": "https://media.integradordeanuncios.com.br/media/facebook_story/story_1.jpg",
"asset_type": 1,
"asset_type_display": "Imagem",
"asset_id": "facebook_asset_123",
"user_id": 1,
"user_name": "João Silva",
"created_at": "2024-01-15T10:30:00Z",
"published_at": "2024-01-15T10:35:00Z",
"status": 2,
"status_display": "Publicado",
"error": null,
"page_id": "123456789",
"facebook_post_id": "987654321",
"facebook_publish_status": 2,
"facebook_publish_status_display": "Publicado",
"story_url": "https://www.facebook.com/stories/987654321"
}
Estrutura de Dados
Estrutura da Resposta Paginada (Lista)
| Campo | Tipo | Descrição |
|---|---|---|
count | integer | Total de stories encontrados |
next | string | URL da próxima página (null se não houver) |
previous | string | URL da página anterior (null se não houver) |
results | array | Array com os resultados da página atual |
Estrutura de um Item de Story
| Campo | Tipo | Descrição |
|---|---|---|
id | integer | Identificador único do story |
dealer_id | integer | ID da loja (somente leitura) |
dealer_name | string | Nome da loja (somente leitura) |
ad_id | integer | ID do anúncio associado (pode ser null) |
asset | string | URL do arquivo (imagem ou vídeo) |
asset_type | integer | Tipo do asset (1=Imagem, 2=Vídeo) |
asset_type_display | string | Nome do tipo de asset (somente leitura) |
asset_id | string | ID do asset no Facebook |
user_id | integer | ID do usuário que criou (somente leitura) |
user_name | string | Nome do usuário que criou (somente leitura) |
created_at | string | Data de criação (ISO 8601) |
published_at | string | Data de publicação (ISO 8601, pode ser null) |
status | integer | Status do story (1=Na Fila, 2=Publicado, 3=Erro) |
status_display | string | Nome do status (somente leitura) |
error | string | Mensagem de erro (pode ser null) |
page_id | string | ID da página do Facebook |
facebook_post_id | string | ID do post no Facebook (pode ser null) |
facebook_publish_status | integer | Status de publicação no Facebook (1=Na Fila, 2=Publicado, 3=Erro) |
facebook_publish_status_display | string | Nome do status de publicação (somente leitura) |
story_url | string | URL do story no Facebook (pode ser null) |
Criar um Novo Story
Requisição
Método: POST
Endpoint: /social-media/facebook/story/{dealer_id}
Payload:
{
"ad_id": 12345,
"asset_type": 1,
"page_id": "123456789",
"asset_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...",
"status": 1,
"facebook_publish_status": 1
}
Campos Obrigatórios
| Campo | Tipo | Descrição |
|---|---|---|
asset_type | integer | Tipo do asset (1=Imagem, 2=Vídeo) |
page_id | string | ID da página do Facebook (deve pertencer à loja) |
Campos Opcionais
| Campo | Tipo | Descrição |
|---|---|---|
ad_id | integer | ID do anúncio associado |
asset_base64 | string | Arquivo codificado em Base64 (imagem ou vídeo). Pode incluir o prefixo data:image/tipo;base64, ou data:video/tipo;base64, |
status | integer | Status do story (1=Na Fila, 2=Publicado, 3=Erro). Padrão: 1 |
facebook_publish_status | integer | Status de publicação no Facebook (1=Na Fila, 2=Publicado, 3=Erro). Padrão: 1 |
Exemplo com Imagem
{
"ad_id": 12345,
"asset_type": 1,
"page_id": "123456789",
"asset_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...",
"status": 1,
"facebook_publish_status": 1
}
Exemplo com Vídeo
{
"ad_id": 12345,
"asset_type": 2,
"page_id": "123456789",
"asset_base64": "data:video/mp4;base64,AAAAIGZ0eXBpc29t...",
"status": 1,
"facebook_publish_status": 1
}
Resposta de Sucesso
Status Code: 201 Created
Retorna o objeto completo do story criado, incluindo o ID gerado e todos os dados relacionados.
Atualizar um Story
Requisição
Método: PUT ou PATCH
Endpoint: /social-media/facebook/story/{dealer_id}/{id}
Payload (PUT - atualização completa):
{
"ad_id": 12345,
"asset_type": 1,
"page_id": "123456789",
"asset_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...",
"status": 2,
"facebook_publish_status": 2
}
Payload (PATCH - atualização parcial):
{
"status": 2,
"facebook_publish_status": 2
}
Resposta de Sucesso
Status Code: 200 OK
Validações Importantes
-
page_id: Opage_idinformado deve pertencer à loja especificada nodealer_id. Caso contrário, a requisição retornará erro de validação. -
asset_type:1= Imagem (formato suportado: JPG, PNG)2= Vídeo (formato suportado: MP4)
-
asset_base64:- Pode incluir o prefixo
data:image/tipo;base64,oudata:video/tipo;base64, - Ou apenas a string Base64 pura
- O arquivo será processado e salvo automaticamente
- Pode incluir o prefixo
-
Status:
1= Na Fila (aguardando publicação)2= Publicado3= Erro
Observações
- Os stories são ordenados por data de criação (mais recentes primeiro)
- O campo
asseté gerado automaticamente após o processamento doasset_base64 - O campo
page_iddeve corresponder a uma página do Facebook vinculada à loja - O campo
ad_idé opcional e pode ser usado para associar o story a um anúncio específico
Possíveis Retornos de Erro
400 Bad Request
Validação de page_id
Retornado quando o page_id não pertence à loja especificada.
{
"page_id": ["Page ID 'invalid_page_id' does not belong to dealer ID '10'"]
}
Validação de Campos
Retornado quando há erros de validação nos dados enviados.
{
"asset_type": ["Este campo é obrigatório."],
"page_id": ["Este campo é obrigatório."]
}
Erro no Processamento de Base64
Retornado quando há erro ao processar o arquivo Base64.
{
"error": "Error processing base64 image: Invalid base64 string"
}
401 Unauthorized
Retornado quando o token de autenticação não foi fornecido ou é inválido.
{
"detail": "As credenciais de autenticação não foram fornecidas."
}
ou
{
"detail": "Token inválido ou expirado."
}
403 Forbidden
Retornado quando o usuário autenticado não tem permissão para acessar este recurso ou quando tenta acessar uma loja que não está autorizado a gerenciar.
{
"detail": "Você não tem permissão para executar essa ação."
}
404 Not Found
Retornado quando um story específico não é encontrado (ao acessar /social-media/facebook/story/{dealer_id}/{id}).
{
"detail": "Não encontrado."
}
400 Bad Request - Parâmetro Ausente
Retornado quando o parâmetro dealer_id não é fornecido na URL.
{
"detail": "Parâmetro ID da Loja não encontrado"
}