파일 업로드

재개 가능한 업로드 API를 사용하면 처음부터 다시 시작할 필요 없이 Meta의 소셜 그래프에 대용량 파일을 업로드하고 중단된 업로드 세션을 다시 시작할 수 있습니다. 파일을 업로드한 후에는 공개할 수 있습니다.

업로드된 파일 핸들을 지원하는 엔드포인트에 대한 참고 자료에는 해당 엔드포인트가 재개 가능한 업로드 API에서 반환한 핸들을 지원하는지 여부가 나와 있습니다.

시작하기 전에

이 가이드에서는 그래프 API 개요Meta 개발 가이드를 읽고 Meta 개발에 필요한 조치를 취한 것으로 가정합니다.

다음과 같은 항목이 필요합니다.

  • Meta 앱 ID
  • 다음 중 한 가지 형식의 파일:
    • pdf
    • jpeg
    • jpg
    • png
  • 사용자 액세스 토큰

1단계: 업로드 세션 시작

업로드 세션을 시작하려면 /<APP_ID>/uploads 엔드포인트로 POST 요청을 보냅니다. 여기에서 <APP_ID>는 앱의 Meta ID이며 다음과 같은 필수 매개변수를 포함합니다.

  • file_name - 파일 이름
  • file_length - 파일 크기(단위: 바이트)
  • file_type - 파일의 MIME 유형. 유효한 값: application/pdf, image/jpeg, image/jpg, image/pngvideo/mp4

요청 구문

가독성을 높이기 위해 형식을 지정했습니다.

curl -i -X POST "https://graph.facebook.com/v21.0/<APP_ID>/uploads
  ?file_name=<FILE_NAME>
  &file_length=<FILE_LENGTH>
  &file_type=<FILE_TYPE>
  &access_token=<USER_ACCESS_TOKEN>"

요청에 성공하면 앱이 업로드 세션 ID를 포함하는 JSON 응답을 받게 됩니다.

{
  "id": "upload:<UPLOAD_SESSION_ID>"
}

2단계: 업로드 시작

다음 file_offset0으로 설정하고 /upload:<UPLOAD_SESSION_ID> 엔드포인트로 POST 요청을 보내서 파일 업로드를 시작합니다.

요청 구문

curl -i -X POST "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>"
  --header "file_offset: 0"
  --data-binary @<FILE_NAME>

헤더에 액세스 토큰을 포함하지 않으면 호출이 실패합니다.

요청에 성공하면 앱이 파일 핸들을 받습니다. 이 핸들은 API 호출에서 엔드포인트로 파일을 공개하는 데 사용됩니다.

{
  "h": "<UPLOADED_FILE_HANDLE>"
}

응답 샘플

{
    "h": "2:c2FtcGxl..."
}

중단된 업로드 재개

업로드 세션을 시작했지만 예상보다 오래 걸리거나 중단된 경우 1단계/upload:<UPLOAD_SESSION_ID> 엔드포인트로 GET 요청을 보내세요.

요청 구문

가독성을 높이기 위해 형식을 지정했습니다.

curl -i -X GET "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>""

요청에 성공하면 앱이 중단 시점에서 업로드 프로세스를 재개하는 데 사용할 수 있는 file_offset 값이 포함된 JSON 응답을 받습니다.

{
  "id": "upload:<UPLOAD_SESSION_ID>"
  "file_offset": <FILE_OFFSET>"
}

2단계에서 했던 것처럼 이 file_offset 값을 사용하여 다른 POST 요청을 보내세요. 그러면 중단 시점부터 업로드 프로세스가 다시 시작됩니다.

다음 단계