หากต้องการปรับการส่งองค์ประกอบให้เหมาะสม คุณอาจเลือกให้แพลตฟอร์ม Messenger บันทึกองค์ประกอบเมื่อมีการส่งได้ โดยจะเป็นประโยชน์หากคุณวางแผนที่จะส่งไฟล์แนบเดียวกันซ้ำๆ เนื่องจากทำให้ไม่ต้องอัพโหลดองค์ประกอบให้กับคำขอแต่ละรายการ
แพลตฟอร์ม Messenger มาพร้อม API จำนวน 2 รายการ ที่จะช่วยให้คุณสามารถบันทึกองค์ประกอบต่างๆ ไว้ใช้ในภายหลัง ได้แก่ API การส่งและ API การอัพโหลดไฟล์แนบ โดย API ทั้ง 2 นี้จะรองรับการบันทึกองค์ประกอบจาก URL และจากระบบไฟล์ในเครื่องของคุณ
แพลตฟอร์ม Messenger รองรับการบันทึกองค์ประกอบประเภทต่างๆ ดังต่อไปนี้ โดยมีขนาดไม่เกิน 25 MB
Content-Type
ต้องใช้ประเภท audio
เช่น audio/mp3
API การส่งช่วยให้คุณสามารถบันทึกองค์ประกอบที่ส่งไปพร้อมกับข้อความได้ ซึ่งเป็นอีกวิธีหนึ่งที่สามารถใช้แทนการอัพโหลดองค์ประกอบล่วงหน้าด้วย API การอัพโหลดไฟล์แนบได้ โดยให้ส่งคำขอ POST
โดยตั้งค่า payload.is_reusable
เป็น true
ไปยังตำแหน่งข้อมูล /messages
หากต้องการบันทึกองค์ประกอบจาก URL ให้ระบุ URL ต้นทางในคุณสมบัติ payload.url
ของอ็อบเจ็กต์ attachment
ของข้อความดังนี้
{
"recipient":{
"id":"
For a complete list of API calls and request properties, see the Send API Reference.
หากต้องการบันทึกองค์ประกอบจากระบบไฟล์ในเครื่องของคุณ ให้ส่งคำขอข้อความไปยัง API การส่งในรูปแบบข้อมูลแบบฟอร์ม และระบุตำแหน่งไฟล์ในช่อง filedata
ของคำขอดังนี้
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.
การตอบกลับจะมี attachment_id
ซึ่งคุณสามารถใช้เพื่อแนบองค์ประกอบไปกับข้อความในอนาคตได้ โปรดทราบว่า ID นี้เป็นแบบส่วนตัว และจะมีเพียงเพจที่ส่งไฟล์แนบแต่เดิมเท่านั้นที่สามารถนำ ID นี้มาใช้ซ้ำได้
{
"recipient_id": "1254444444682919",
"message_id": "mid.$cAAJsujCd2ORkHh27-ld7NhzuqrUK",
"attachment_id": "687799999980546"
}
API การอัพโหลดไฟล์แนบช่วยให้คุณสามารถอัพโหลดองค์ประกอบต่างๆ ล่วงหน้าได้ ซึ่งจะเป็นประโยชน์หากคุณทราบล่วงหน้าว่าคุณจะต้องส่งองค์ประกอบอย่างใดอย่างหนึ่งซ้ำๆ โดยให้ส่งคำขอ POST
ไปยังตำแหน่งข้อมูล /message_attachments
หากต้องการดูรายการการเรียก API และคุณสมบัติการร้องขอทั้งหมด โปรดดูที่ข้อมูลอ้างอิง API การอัพโหลดไฟล์แนบ
หากต้องการบันทึกองค์ประกอบจาก URL ให้ระบุ URL ต้นทางในคุณสมบัติ payload.url
ของอ็อบเจ็กต์ attachment
ของข้อความดังนี้
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>"
หากต้องการดูรายการการเรียก API และคุณสมบัติการร้องขอทั้งหมด โปรดดูที่ข้อมูลอ้างอิง API การอัพโหลดไฟล์แนบ
หากต้องการบันทึกองค์ประกอบจากระบบไฟล์ในเครื่องของคุณ ให้ส่งคำขอข้อความไปยัง API การอัพโหลดไฟล์แนบในรูปแบบข้อมูลแบบฟอร์ม และระบุตำแหน่งไฟล์ในช่อง filedata
ของคำขอดังนี้
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>"
การตอบกลับจะมี attachment_id
ซึ่งคุณสามารถใช้เพื่อแนบองค์ประกอบไปกับข้อความในอนาคตได้ โปรดทราบว่า ID นี้เป็นแบบส่วนตัว และจะมีเพียงเพจที่ส่งไฟล์แนบแต่เดิมเท่านั้นที่สามารถนำ ID นี้มาใช้ซ้ำได้
{
"attachment_id":"1857777774821032"
}
เมื่อคุณมี attachment_id
สำหรับองค์ประกอบที่บันทึกไว้ คุณจะสามารถนำมาใช้เพื่อแนบองค์ประกอบไปกับข้อความได้ โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการส่งข้อความ - การแนบองค์ประกอบที่บันทึกไว้