Để tối ưu hóa việc gửi tài sản, bạn có thể yêu cầu Nền tảng Messenger lưu tài sản khi tài sản được gửi nếu muốn. Thao tác này sẽ hữu ích nếu bạn định gửi cùng một file đính kèm nhiều lần, vì bạn sẽ không phải tải tài sản lên cho mỗi yêu cầu.
Nền tảng Messenger cung cấp 2 API giúp bạn lưu tài sản để sử dụng sau này: API Gửi và API Tải lên file đính kèm. Cả hai 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.
Nền tảng Messenger hỗ trợ lưu các loại tài sản sau đây, với kích thước lên đến 25MB:
Content-Type
phải sử dụng loại audio
. Ví dụ: audio/mp3
.API Gửi cho phép bạn lưu tài sản được gửi kèm theo tin nhắn, thay vì tải lên trước bằng API Tải lên file đính kèm. Để thực hiện việc này, hãy gửi yêu cầu POST
với payload.is_reusable
được đặt thành true
đến điểm cuối /messages
.
Để lưu tài sản từ URL, hãy chỉ định URL nguồn trong thuộc tính payload.url
của đối tượng attachment
trong tin nhắn:
{
"recipient":{
"id":"
For a complete list of API calls and request properties, see the Send API Reference.
Để lưu tài sản từ hệ thống file cục bộ, hãy gửi tin nhắn đang chờ đến API Gửi dưới dạng dữ liệu trong mẫu và chỉ định vị trí file trong trường filedata
của yêu cầu:
curl \
-F 'recipient={"id":"<PSID>"}' \
-F 'message={"attachment":{"type":"<ASSET_TYPE>", "payload":{"is_reusable":true}}}' \
-F 'filedata=@/tmp/shirt.png;type=image/png' \
"https://graph.facebook.com/v21.0
/me/messages?access_token=<PAGE_ACCESS_TOKEN>"
For a complete list of API calls and request properties, see the Send API Reference.
Phản hồi sẽ chứa attachment_id
có thể được dùng để đính kèm tài sản với các tin nhắn trong tương lai. Lưu ý rằng đây là ID riêng tư và chỉ trang gửi file đính kèm ban đầu mới có thể sử dụng lại ID này.
{
"recipient_id": "1254444444682919",
"message_id": "mid.$cAAJsujCd2ORkHh27-ld7NhzuqrUK",
"attachment_id": "687799999980546"
}
Với API Tải lên file đính kèm, bạn có thể tải tài sản lên trước. Việc này sẽ hữu ích nếu bạn biết trước rằng mình sẽ cần gửi các tài sản cụ thể nhiều lần. Để thực hiện việc này, hãy gửi yêu cầu POST
đến điểm cuối /message_attachments
.
Để có danh sách hoàn chỉnh các lệnh gọi API và thuộc tính yêu cầu, hãy xem Tài liệu tham khảo về API Tải lên file đính kèm.
Để lưu tài sản từ URL, hãy chỉ định URL nguồn trong thuộc tính payload.url
của đối tượng attachment
trong tin nhắn:
curl -X POST -H "Content-Type: application/json" -d '{
"message":{
"attachment":{
"type":"image",
"payload":{
"is_reusable": true,
"url":"http://www.messenger-rocks.com/image.jpg"
}
}
}
}' "https://graph.facebook.com/v2.6/me/message_attachments?access_token=<PAGE_ACCESS_TOKEN>"
Để có danh sách hoàn chỉnh các lệnh gọi API và thuộc tính yêu cầu, hãy xem Tài liệu tham khảo về API Tải lên file đính kèm.
Để lưu tài sản từ hệ thống file cục bộ, hãy gửi tin nhắn đang chờ đến API Tải lên file đính kèm dưới dạng dữ liệu trong mẫu và chỉ định vị trí file trong trường filedata
của yêu cầu:
curl \
-F 'recipient={"id":"<PSID>"}' \
-F 'message={"attachment":{"type":"<ASSET_TYPE>", "payload":{"is_reusable":true}}}' \
-F 'filedata=@/tmp/shirt.png;type=image/png' \
"https://graph.facebook.com/v21.0
/me/messages?access_token=<PAGE_ACCESS_TOKEN>"
Phản hồi sẽ chứa attachment_id
có thể được dùng để đính kèm tài sản với các tin nhắn trong tương lai. Lưu ý rằng đây là ID riêng tư và chỉ trang gửi file đính kèm ban đầu mới có thể sử dụng lại ID này.
{
"attachment_id":"1857777774821032"
}
Sau khi có attachment_id
của tài sản đã lưu, bạn có thể sử dụng ID này để đính kèm tài sản với tin nhắn. Hãy xem phần Gửi tin nhắn - Đính kèm tài sản đã lưu để biết thêm thông tin.