CHÚ Ý: ID file đính kèm sẽ hết hạn sau 90 ngày. Sau khi ID file đính kèm hết hạn, bạn cần phải tải lại file phương tiện của mình lên để lấy ID file đính kèm mới.
Mặc dù file đính kèm có thể tái sử dụng sẽ hết hạn sau 90 ngày và không thể gửi lại, nhưng file đính kèm trong chuỗi tin nhắn sẽ không bao giờ hết hạn và hiển thị cho đến khi người dùng xóa tin nhắn khỏi chuỗi. Nếu trường hợp sử dụng cho phép, bạn có thể kết hợp các bước tải lên và gửi như nêu bên dưới để tránh vấn đề TTL này.
API Tải lên file đính kèm cho phép bạn tải lên tài sản có thể gửi trong tin nhắn sau đó. Nhờ vậy, bạn không phải tải lên nhiều lần các file thường dùng. API này hỗ trợ lưu tài sản từ URL và từ hệ thống file cục bộ của bạn.
Bạn cũng có thể dùng Send API để gửi đồng thời tin nhắn có file đính kèm và lưu file đính kèm đó để sử dụng sau. Để biết thêm thông tin, hãy xem phần Tải lên và gửi bên dưới.
Để tải file đính kèm lên, hãy gửi yêu cầu POST
đến điểm cuối /
Your-page-id
/message_attachments
, kèm theo message.attachment
có type
và payload
. Để có thể sử dụng tài sản này trong nhiều tin nhắn, hãy đặt payload.is_reusable
là true
.
Được định dạng để dễ đọc. Thay thế các giá trị in đậm, in nghiêng như page_access_token bằng các giá trị của bạn.
curl -X POST "https://graph.facebook.com/v21.0
/Your-page-id/message_attachments" \
-H "Content-Type: application/json" \
-d '{
"access_token":"Your_page_access_token",
"message":{
"attachment":{
"type":"image",
"payload":{
"url":"https://your-url.com/image.jpg",
"is_reusable": true
}
}
}
}'
Được định dạng để dễ đọc. Thay thế các giá trị in đậm, in nghiêng như page_access_token bằng các giá trị của bạn.
curl -X POST -H "Content-Type: application/json" -d '{
"message": {
"attachment": {
"type": "image"
}
},
"filedata": "@/path-to-your-file/image.jpg",
"type": "image/png"
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/message_attachments?access_token={PAGE_ACCESS_TOKEN}"
Khi thành công, ứng dụng của bạn sẽ nhận được một đối tượng JSON có attachment_id
được đặt là ID của file đính kèm mà bạn sẽ dùng trong tin nhắn.
{"attachment_id": "Your-attachment-ID"}
Để gửi tin nhắn có chứa tài sản mà bạn đã tải lên trước đó với message.attachment.payload.is_reusable
được đặt là true
, hãy gửi yêu cầu POST
đến điểm cuối /
Your-page-id
/messages
kèm theo recipient.id
cùng đối tượng message.attachment
có type
và payload.attachment_id
.
Được định dạng để dễ đọc. Thay thế các giá trị in đậm, in nghiêng như page_access_token bằng các giá trị của bạn.
curl -X POST -H "Content-Type: application/json" -d '{
"recipient": {
"id": "{PSID}"
},
"message": {
"attachment": {
"type": "image",
"payload": {
"attachment_id": "Your-attachment-ID"
}
}
}
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"
Khi thành công, ứng dụng của bạn sẽ nhận được một đối tượng JSON có success
được đặt là true
.
{"success": "true"}
Ngoài ra, bạn có thể tải lên và gửi file phương tiện trong một yêu cầu API duy nhất.
CHÚ Ý:Không đặt is_public=true
trong phần tải dữ liệu cho trường hợp này. File đính kèm trong chuỗi tin nhắn của người dùng luôn ở chế độ riêng tư.
Được định dạng để dễ đọc. Thay thế các giá trị in đậm, in nghiêng như page_access_token bằng các giá trị của bạn.
curl -X POST -H "Content-Type: application/json" -d '{
"recipient": {
"id": "{PSID}"
},
"message": {
"attachment": {
"type": "image",
"payload": {
"url": "https://your-url.com/image.jpg"
}
}
}
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"
Khi thành công, ứng dụng của bạn sẽ nhận được một đối tượng JSON có success
được đặt là true
.
{"success": "true"}
Đối với file đính kèm từ URL, hãy cung cấp các thuộc tính sau trong phần nội dung của yêu cầu dưới dạng đối tượng JSON. Đối với file đính kèm từ file, hãy gửi thuộc tính dưới dạng dữ liệu mẫu.
message
Property | Type | Description |
---|---|---|
| Object | An object describing attachments to the message. |
message.attachment
Thuộc tính | Loại | Mô tả |
---|---|---|
| Chuỗi | Loại file đính kèm. Phải thuộc một trong các loại sau:
|
| Đối tượng | Đối tượng |
message.attachment.payload
Thuộc tính | Loại | Mô tả |
---|---|---|
| Chuỗi | Không bắt buộc. URL của file sẽ tải lên. Kích thước file tối đa là 8MB đối với hình ảnh và 25MB đối với mọi loại file khác (sau khi mã hóa). Thời gian chờ được đặt là 75 giây đối với video và 10 giây đối với mọi loại file khác. |
| Boolean | Không bắt buộc, mặc định là false.Không đặt là Chỉ đặt là true khi bạn tải lên và gửi trong các bước riêng. ID file đính kèm sẽ hết hạn sau 90 ngày. Hãy tải lại file phương tiện của bạn lên để lấy ID file đính kèm mới sau 90 ngày. Mặc dù file đính kèm có thể tái sử dụng sẽ hết hạn sau 90 ngày và không thể gửi lại, nhưng file đính kèm trong chuỗi tin nhắn sẽ không bao giờ hết hạn và hiển thị cho đến khi người dùng xóa tin nhắn khỏi chuỗi. |
Mã lỗi | Mã phụ | Thông báo |
---|---|---|
100 | 2018074 | ID có thể không hợp lệ hoặc bạn không sở hữu file đính kèm. |
100 | 2018008 | Không thể tìm nạp file từ url. Kiểm tra để đảm bảo rằng URL hợp lệ, cùng với chứng chỉ SSL hợp lệ, kích thước file hợp lệ và máy chủ phản hồi đủ nhanh để không bị hết thời gian chờ. |
100 | 2018294 | Quá trình tải video lên đã hết thời gian chờ hoặc video bị hỏng. Lưu ý rằng nếu bạn không thể tìm nạp video trong vòng 75 giây, quá trình tìm nạp sẽ hết thời gian chờ |
100 | 2018047 | Không thể tải file đính kèm lên. Cách phổ biến để kích hoạt lỗi này là loại file phương tiện đã cung cấp không khớp với loại file được cung cấp trong URL |