A API de Carregamento Retomável permite que você carregue grandes arquivos na Graph API e retome as sessões de carregamento sem precisar reiniciar o processo. Depois de carregar os arquivos, é possível usar os respectivos identificadores em outros pontos de extremidade da Graph API compatíveis.
Vale lembrar que o uso da API de Carregamento Retomável não é a única forma de carregar arquivos. Diversos nós têm bordas compatíveis com carregamento. Entretanto, a maioria deles não consegue gerenciar grandes arquivos nem retomar uma sessão de carregamento interrompida.
As referências de pontos de extremidade que aceitam identificadores de arquivo carregado indicarão se os identificadores retornados pela API de Carregamento Retomável são compatíveis.
São necessárias duas etapas para carregar um arquivo:
Se tudo correr bem, um identificador será retornado. Use-o em outros pontos de extremidade que aceitam identificadores de arquivo retornados pela API de Carregamento Retomável.
Envie uma solicitação POST
que descreva o arquivo ao ponto de extremidade de carregamentos do aplicativo ({app-id}/uploads
) . Se o processo for bem-sucedido, um ID da sessão de carregamento será retornado. Use-o na próxima etapa para iniciar o carregamento.
POST https://graph.facebook.com/{api-version}/{app-id}/uploads &file_length={file-length} &file_type={file-type} &access_token={access-token}
Espaços reservados para parâmetros:
{api-version}
: a versão da Graph API.{app-id}
: o ID do aplicativo. O arquivo carregado que será associado ao app. O usuário precisa ter a função de administrador ou desenvolvedor no app.file-length
: o tamanho do arquivo em bytes. file-type
: o tipo MIME do arquivo. Valores aceitos: application/pdf
, image/jpeg
, image/jpg
, image/png
e video/mp4
.{access-token}
: o token de acesso do usuário do app.Consulte a referência do ponto de extremidade de carregamentos do aplicativo para ver a lista completa de parâmetros de consulta disponíveis e tipos de arquivos compatíveis.
{ "id": "{id}" }
Valores da propriedade de resposta:
{id}
: o ID da sessão de carregamento.
curl -X POST \
"https://graph.facebook.com/v19.0
/584544743160774/uploads?file_length=109981&file_type=image/png&access_token=EAAIT..."
{ "id": "upload:MTphd..." }
Inicie a sessão de carregamento enviando uma solicitação POST
ao endereço do host da Graph API e inclua o {id}
da sessão com os cabeçalhos obrigatórios a seguir. Se o processo for bem-sucedido, um identificador de arquivo {h}
será retornado. Use-o nos pontos de extremidade da Graph API que aceitam identificadores de arquivo retornados pela API de Carregamento Retornável.
Caso a sessão de carregamento esteja demorando mais que o esperado ou tenha sido interrompida, siga as etapas descritas na seção Interrupções.
POST https://graph.facebook.com/{api-version}/{upload-session-id} --header 'Authorization: OAuth {access-token}' --header 'file_offset: 0' --data-binary @{file-name}
Valores de espaço reservado
{api-version}
: a versão da Graph API.{upload-session-id}
: o ID da sessão de carregamento (retornado na etapa 1).{access-token}
: o token de acesso do usuário do app. O usuário precisa ter uma função no app da etapa 1.{file-name}
: o nome do arquivo a ser carregado.É preciso incluir o token de acesso no cabeçalho. Caso contrário, a sua solicitação falhará.
{ "h": "{h}" }
Valores da propriedade de resposta:
{h}
: o identificador do arquivo carregado.
curl -X POST \
"https://graph.facebook.com/v19.0
/upload:MTphd..." \
--header "Authorization: OAuth EAAIT..." \
--header "file_offset: 0" \
--data-binary @cats_are_jerks.png
{ "h": "2:c2FtcGxl..." }
Caso a sessão de carregamento esteja demorando mais que o esperado ou tenha sido interrompida, envie uma solicitação GET
ao endereço de host da Graph API e inclua o ID da sessão. A API retorna um valor file_offset
que pode ser usado para retomar o processo de carregamento do ponto em que parou.
GET https://graph.facebook.com/{api-version}/{upload-session-id} ?access_token={access-token}
Valores de espaço reservado:
{api-version}
: a versão da Graph API.{upload-session-id}
: o ID da sessão de carregamento (retornado na Etapa 1: criar uma sessão.{access-token}
: o token de acesso do usuário do app.{ "id": "{id}", "file_offset": {file-offset} }
Valores da propriedade de resposta:
{id}
: o ID da sessão de carregamento que foi consultado.{file-offset}
: um número inteiro que indica a quantidade de bytes carregados.Guarde o valor file_offset
e repita a Etapa 2: iniciar o carregamento, atribuindo o valor ao cabeçalho file_offset
correspondente. Com isso, o processo de carregamento será retomado do ponto em que parou.
curl -X GET \
"https://graph.facebook.com/v19.0
/upload:MTphd...&access_token=EAAIT..." \
{ "id": "upload:MTphd", "file_offset": 5238 }