문서가 업데이트되었습니다.
한국어로 번역이 아직 완료되지 않았습니다.
영어 업데이트됨: 2023. 9. 12.

첨부 파일 업로드 API 참고 자료

첨부 파일 업로드 API를 사용하면 자산을 업로드하여 나중에 이를 메시지에서 전송하도록 할 수 있습니다. 그러면 자주 사용하는 파일을 여러 번 업로드하지 않아도 됩니다. 이 API는 URL과 로컬 파일 시스템의 자산을 저장하도록 지원합니다.

Send API를 사용하여 첨부 파일과 함께 메시지를 동시에 전송하고 나중에 사용하기 위해 첨부 파일을 저장할 수도 있습니다. 자세한 내용은 Send API 참고 자료를 참조하세요.

첨부 파일 업로드

첨부 파일을 업로드하려면 /Your-page-id/message_attachment 엔드포인트로 POST 요청을 보내세요. 이때 typepayload를 포함한 message.attachment를 포함합니다. 여러 메시지에서 자산을 사용하려면 payload.is_reusabletrue로 설정하세요.

URL에서 업로드하기 위한 요청의 예시

가독성을 높이기 위해 형식을 지정했습니다. 굵은 글씨, 기울임꼴 값(예: page_access_token)을 자신의 값으로 바꿉니다.

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/message_attachment" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image", 
               "payload":{
                 "url":"https.your-url.com/image.jp",
                 "is_reusable": true
               }
             }
           }
         }'

파일에서 업로드하기 위한 요청의 예시

가독성을 높이기 위해 형식을 지정했습니다. 굵은 글씨, 기울임꼴 값(예: page_access_token)을 자신의 값으로 바꿉니다.

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/message_attachment" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image"
             }
           },
           "filedata":"@/path-to-your-file/image.png";"type":"image/png"
         }'

요청에 성공하면 앱이 attachment_id가 메시지에서 사용할 첨부 파일의 ID로 설정된 JSON 개체를 받습니다.

{"attachment_id": "Your-attachment-ID"}

업로드한 자산을 포함하여 메시지 보내기

이전에 업로드한 자산을 포함하여 메시지를 보내려면 message.attachment.payload.is_reusabletrue로 설정하여 자산을 업로드하고, /Your-page-id/messages 엔드포인트로 POST 요청을 보냅니다. 이때 recipient.id, message.attachment 개체(typepayload.attachment_id 포함)를 포함합니다.

파일에서 업로드하기 위한 요청의 예시

가독성을 높이기 위해 형식을 지정했습니다. 굵은 글씨, 기울임꼴 값(예: page_access_token)을 자신의 값으로 바꿉니다.

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/messages" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image",
               "payload":{
                 "attachment_id":"Your-attachment-ID"
               }
             }
           }
         }'

요청에 성공하면 앱이 successtrue로 설정된 JSON 개체를 받게 됩니다.

{"success": "true"}

속성

URL의 첨부 파일에 대해서는 요청 본문에 다음 속성을 JSON 개체로 제공합니다. 파일의 첨부 파일에 대해서는 속성을 양식 데이터로 전송합니다.

message

Description of the message to be sent.
Property Type Description

message.attachment

Object

An object describing attachments to the message.

message.attachment

속성 유형 설명

type

문자열

첨부 파일의 유형. 다음 중 하나여야 합니다.

  • 이미지
  • 동영상
  • 오디오
  • 파일

payload

개체

첨부 파일을 설명하는 payload 개체.

message.attachment.payload

속성 유형 설명

url

문자열

선택 사항. 업로드할 파일의 URL. 최대 파일 크기는 이미지의 경우 8MB이고 그 외의 다른 파일 유형의 경우 25MB입니다(인코딩 후). 시간 초과는 동영상의 경우 75초로 설정되고 그 외의 다른 파일 유형의 경우 10초로 설정됩니다.

is_reusable

부울

선택 사항. 저장된 자산을 다른 메시지 받는 사람에게 전송할 수 있으려면 true로 설정합니다. 기본값은 false입니다.

오류 코드

오류 코드하위 코드메시지

100

2018074

잘못된 ID이거나 첨부 파일의 소유자가 아닐 수 있습니다.

100

2018008

URL에서 파일을 가져오지 못했습니다. URL과 SSL 인증서 및 파일 크기가 유효하고 서버가 시간 초과를 방지할 수 있을 만큼 빠르게 응답하는지 확인하세요.

100

2018294

동영상 업로드 시간이 초과되었거나 동영상이 손상되었습니다. 동영상을 75초 내에 가져올 수 없으면 시간이 초과됩니다.

100

2018047

첨부 파일 업로드에 실패했습니다. 일반적으로 이 오류는 제공된 미디어 유형이 URL에 제공된 파일 유형과 일치하지 않을 때 트리거됩니다.