การเผยแพร่เนื้อหา

คุณสามารถใช้ API การเผยแพร่เนื้อหาเพื่อเผยแพร่รูปภาพ วิดีโอ คลิป Reels เดี่ยวๆ (เช่น โพสต์ที่มีสื่อรายการเดียว) หรือโพสต์ที่มีรูปภาพและวิดีโอหลายรายการ (โพสต์แบบภาพสไลด์) ในบัญชีมืออาชีพบน Instagram ได้

ตั้งแต่วันที่ 1 กรกฎาคม 2023 เป็นต้นไป วิดีโอฟีดเดียวทั้งหมดที่เผยแพร่ผ่าน API การเผยแพร่เนื้อหาบน Instagram จะถูกแชร์เป็นคลิป Reels

ข้อกำหนด

โทเค็นการเข้าถึง

คำขอทั้งหมดต้องมีโทเค็นการเข้าถึงผู้ใช้ของผู้ใช้แอพ

สิทธิ์การอนุญาต

การเผยแพร่จะขึ้นอยู่กับสิทธิ์การอนุญาตต่อไปนี้รวมกัน โดยชุดสิทธิ์การอนุญาตที่แน่นอนจะขึ้นอยู่กับว่าแอพของคุณใช้ตำแหน่งข้อมูลอะไร โปรดดูข้อมูลอ้างอิงเกี่ยวกับตำแหน่งข้อมูลเพื่อพิจารณาว่าสิทธิ์การอนุญาตใดที่ตำแหน่งข้อมูลแต่ละรายการต้องใช้

หากแอพของคุณจะใช้โดยผู้ใช้แอพที่ไม่มีบทบาทในแอพของคุณหรือไม่มีบทบาทในธุรกิจที่อ้างสิทธิ์ในแอพของคุณ คุณต้องขอการอนุมัติสำหรับสิทธิ์การอนุญาตแต่ละรายการผ่านการตรวจสอบแอพก่อนที่ผู้ใช้แอพที่ไม่มีบทบาทจะสามารถให้สิทธิ์การอนุญาตแก่แอพของคุณ

เซิร์ฟเวอร์สาธารณะ

เราจะดำเนินการ cURL ให้กับสื่อที่ใช้ในการเผยแพร่ ดังนั้นสื่อดังกล่าวจะต้องได้รับการโฮสต์ในเซิร์ฟเวอร์ที่เข้าถึงได้อย่างสาธารณะ ณ เวลาที่ดำเนินการเผยแพร่

การอนุญาตเผยแพร่เพจ

คุณจะไม่สามารถเผยแพร่บัญชีมืออาชีพบน Instagram ที่เชื่อมต่อกับเพจที่ต้องได้รับการอนุญาตเผยแพร่เพจ (PPA) จนกว่า PPA จะเสร็จสมบูรณ์

มีความเป็นไปได้ที่ผู้ใช้แอพอาจสามารถดำเนินงานบนเพจที่ไม่จำเป็นต้องมี PPA ในช่วงแรกได้ แต่ต้องมีในภายหลัง ในสถานการณ์เช่นนี้ ผู้ใช้แอพจะไม่สามารถเผยแพร่เนื้อหาไปยังบัญชีมืออาชีพบน Instagram ของตนได้จนกว่า PPA จะเสร็จสมบูรณ์ เนื่องจากคุณไม่สามารถระบุได้ว่าเพจของผู้ใช้แอพจะต้องมี PPA หรือไม่ เราขอแนะนำให้คุณแนะนำให้ผู้ใช้แอพดำเนินการขั้นตอน PPA ให้เสร็จสมบูรณ์ล่วงหน้า

ข้อจำกัด

  • ระบบรองรับรูปภาพในรูปแบบ JPEG เท่านั้น ระบบไม่รองรับรูปแบบ JPEG แบบขยาย เช่น MPO และ JPS
  • ระบบไม่รองรับแท็กช้อปปิ้ง
  • ระบบไม่รองรับแท็กเนื้อหาที่มีแบรนด์
  • ระบบไม่รองรับฟิลเตอร์
  • ไม่รองรับการเผยแพร่ไปยัง Instagram TV

โปรดดูข้อจำกัดเพิ่มเติมที่เอกสารอ้างอิงของตำแหน่งข้อมูลแต่ละรายการ

ขีดจำกัดอัตรา

บัญชี Instagram สามารถมีโพสต์ที่เผยแพร่โดย API ได้ไม่เกินขีดจำกัดที่ 50 รายการภายในระยะเวลาต่อเนื่อง 24 ชั่วโมง ภาพสไลด์จะนับรวมเป็นโพสต์เดียว ขีดจำกัดนี้จะบังคับใช้กับตำแหน่งข้อมูล POST /{ig-user-id}/media_publish เมื่อดำเนินการเผยแพร่คอนเทนเนอร์สื่อ เราขอแนะนำให้แอพของคุณบังคับใช้การจำกัดอัตราการเผยแพร่เช่นเดียวกัน โดยเฉพาะอย่างยิ่งหากแอพของคุณอนุญาตให้ผู้ใช้แอพสามารถกำหนดเวลาให้เผยแพร่โพสต์ในอนาคตได้

หากต้องการตรวจสอบการใช้งานการจำกัดอัตราปัจจุบันของบัญชีมืออาชีพบน Instagram ให้สืบค้นตำแหน่งข้อมูล GET /{ig-user-id}/content_publishing_limit

ตำแหน่งข้อมูล

API ประกอบด้วยตำแหน่งข้อมูลดังต่อไปนี้ โปรดดูข้อกำหนดการใช้งานในเอกสารอ้างอิงของตำแหน่งข้อมูลแต่ละรายการ

  • POST /{ig-user-id}/media — อัพโหลดสื่อและสร้างคอนเทนเนอร์ของสื่อ
  • POST /{ig-user-id}/media_publish — เผยแพร่สื่อที่อัพโหลดแล้วโดยใช้คอนเทนเนอร์ของสื่อ
  • GET /{ig-container-id}?fields=status_code — ตรวจสอบสิทธิ์และสถานะการเผยแพร่ของคอนเทนเนอร์ของสื่อ
  • GET /{ig-user-id}/content_publishing_limit — ตรวจสอบการใช้งานการจำกัดอัตราการเผยแพร่ปัจจุบันของผู้ใช้แอพ

โพสต์ที่มีสื่อรายการเดียว

การเผยแพร่รูปภาพ วิดีโอ สตอรี่ หรือคลิป Reels รายการเดียวสามารถทำได้ใน 2 ขั้นตอนดังนี้

  1. ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media เพื่อสร้างคอนเทนเนอร์จากรูปภาพหรือวิดีโอ 1 รายการที่โฮสต์บนเซิร์ฟเวอร์สาธารณะของคุณ
  2. ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media_publish เพื่อเผยแพร่คอนเทนเนอร์ดังกล่าว

ขั้นตอนที่ 1 จาก 2: สร้างคอนเทนเนอร์

สมมติว่าคุณมีรูปภาพ 1 รายการที่...

https://www.example.com/images/bronz-fonz.jpg

... ซึ่งคุณต้องการเผยแพร่โดยมีแฮชแท็ก "#BronzFonz" เป็นคำบรรยาย ส่งคำขอไปยังตำแหน่งข้อมูล POST /{ig-user-id}/media ดังนี้

ตัวอย่างคำขอ

POST https://graph.facebook.com/v21.0/17841400008460056/media
  ?image_url=https://www.example.com/images/bronz-fonz.jpg
  &caption=#BronzFonz

ตัวอย่างนี้จะส่งคืน ID คอนเทนเนอร์สำหรับรูปภาพดังกล่าว

ตัวอย่างการตอบกลับ

{
  "id": "17889455560051444"  // IG Container ID
}

ขั้นตอนที่ 2 จาก 2: เผยแพร่คอนเทนเนอร์

ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media_publish เพื่อเผยแพร่ ID คอนเทนเนอร์ที่ได้รับจากขั้นตอนก่อนหน้านี้

ตัวอย่างคำขอ

POST https://graph.facebook.com/v21.0/17841400008460056/media_publish ?creation_id=17889455560051444

ตัวอย่างการตอบกลับ

{
  "id": "17920238422030506" // IG Media ID
}

โพสต์ภาพสไลด์

คุณสามารถเผยแพร่รูปภาพ วิดีโอ หรือทั้ง 2 อย่างรวมกันได้ไม่เกิน 10 รายการในโพสต์เดียว (โพสต์แบบภาพสไลด์ 1 โพสต์) การเผยแพร่ภาพสไลด์สามารถทำได้ใน 3 ขั้นตอนดังนี้

  1. ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media เพื่อสร้างคอนเทนเนอร์วัตถุแยกกันสำหรับรูปภาพและวิดีโอแต่ละรายการที่จะปรากฏในภาพสไลด์ดังกล่าว
  2. ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media อีกครั้งเพื่อสร้างคอนเทนเนอร์ภาพสไลด์เดี่ยวๆ สำหรับแต่ละรายการ
  3. ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media_publish เพื่อเผยแพร่คอนเทนเนอร์ภาพสไลด์

โพสต์แบบภาพสไลด์จะนับเป็นโพสต์รายการเดียวโดยมีการจำกัดอัตราของบัญชีนั้นๆ อยู่

ข้อจำกัด

  • ภาพสไลด์จะไม่สามารถนำมาโปรโมทได้
  • ภาพสไลด์จะมีรูปภาพ วิดีโอ หรือทั้ง 2 อย่างรวมกันได้ไม่เกิน 10 รายการ
  • ภาพสไลด์ทั้งหมดจะได้รับการครอบตัดตามรูปแรกในชุดภาพสไลด์ โดยอัตราส่วนกว้างยาวเริ่มต้นจะเป็น 1:1

ขั้นตอนที่ 1 จาก 3: สร้างคอนเทนเนอร์วัตถุ

ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media เพื่อสร้างคอนเทนเนอร์วัตถุสำหรับรูปภาพหรือวิดีโอที่จะปรากฏในภาพสไลด์ ภาพสไลด์จะมีรูปภาพ วิดีโอ หรือทั้ง 2 อย่างรวมกันทั้งหมดได้ไม่เกิน 10 รายการ

POST /{ig-user-id}/media

พารามิเตอร์

พารามิเตอร์ต่อไปนี้เป็นรายการที่ต้องระบุ โปรดดูพารามิเตอร์ที่ระบบรองรับเพิ่มเติมที่เอกสารอ้างอิงเกี่ยวกับตำแหน่งข้อมูล POST /{ig-user-id}/media

  • is_carousel_item — ให้ตั้งค่าเป็น true ซึ่งหมายความว่ารูปภาพหรือวิดีโอจะปรากฏในภาพสไลด์
  • image_url — (รูปภาพเท่านั้น) นี่คือพาธไปยังรูปภาพ เราจะ cURL รูปภาพของคุณโดยใช้ URL ที่ส่งเข้าไป ดังนั้น รูปภาพจะต้องอยู่ในเซิร์ฟเวอร์สาธารณะ
  • media_type — (วิดีโอเท่านั้น) ให้ตั้งค่าเป็น VIDEO ซึ่งหมายความว่าสื่อเป็นวิดีโอ
  • video_url — (วิดีโอเท่านั้น) นี่คือพาธไปยังวิดีโอ เราจะ cURL วิดีโอของคุณโดยใช้ URL ที่ส่งเข้าไป ดังนั้น วิดีโอจะต้องอยู่ในเซิร์ฟเวอร์สาธารณะ

หากการดำเนินการสำเร็จ API จะส่งคืน ID คอนเทนเนอร์วัตถุ ซึ่งสามารถนำไปใช้เมื่อสร้างคอนเทนเนอร์ภาพสไลด์ได้

ดำเนินกระบวนการนี้ซ้ำสำหรับรูปภาพและวิดีโอแต่ละรายการที่ต้องการให้ปรากฏในภาพสไลด์

ตัวอย่างคำขอ

curl -i -X POST \

"https://graph.facebook.com/v21.0/90010177253934/media?image_url=https%3A%2F%2Fsol...&is_carousel_item=true&access_token=EAAOc..."

ตัวอย่างการตอบกลับ

{
  "id": "17899506308402767"
}

ขั้นตอนที่ 2 จาก 3: สร้างคอนเทนเนอร์ภาพสไลด์

ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media เพื่อสร้างคอนเทนเนอร์ภาพสไลด์

POST /{ig-user-id}/media

พารามิเตอร์

พารามิเตอร์ต่อไปนี้เป็นรายการที่ต้องระบุ โปรดดูพารามิเตอร์ที่ระบบรองรับเพิ่มเติมที่เอกสารอ้างอิงเกี่ยวกับตำแหน่งข้อมูล POST /{ig-user-id}/media

  • media_type — ให้ตั้งค่าเป็น CAROUSEL ซึ่งจะบ่งชี้ว่าเป็นคอนเทนเนอร์สำหรับภาพสไลด์
  • children — อาร์เรย์สำหรับ ID คอนเทนเนอร์ไม่เกิน 10 รายการสำหรับรูปภาพและวิดีโอแต่ละรายการที่จะปรากฏในภาพสไลด์ที่เผยแพร่ไว้ ภาพสไลด์สามารถมีรูปภาพ วิดีโอ หรือทั้งสองอย่างรวมกันทั้งหมดได้ไม่เกิน 10 รายการ

ตัวอย่างคำขอ

curl -i -X POST \

"https://graph.facebook.com/v21.0/90010177253934/media?caption=Fruit%20candies&media_type=CAROUSEL&children=17899506308402767%2C18193870522147812%2C17853844403701904&access_token=EAAOc..."

ตัวอย่างการตอบกลับ

{
  "id": "18000748627392977"
}

ขั้นตอนที่ 3 จาก 3: เผยแพร่คอนเทนเนอร์ภาพสไลด์

ใช้ตำแหน่งข้อมูล POST /{ig-user-id}/media_publish เพื่อเผยแพร่คอนเทนเนอร์ภาพสไลด์ (โพสต์แบบภาพสไลด์) บัญชีสามารถมีโพสต์ที่เผยแพร่ได้ไม่เกิน 50 รายการภายในระยะเวลา 24 ชั่วโมง การเผยแพร่ภาพสไลด์ 1 ชุดจะนับเป็นโพสต์รายการเดียว

POST /{ig-user-id}/media_publish

พารามิเตอร์

พารามิเตอร์ต่อไปนี้เป็นรายการที่ต้องระบุ

  • สำหรับ creation_id นี่คือ ID คอนเทนเนอร์ภาพสไลด์

หากการดำเนินการสำเร็จ API จะส่งคืน ID สื่อบน IG ของอัลบั้มภาพสไลด์กลับมา

ตัวอย่างคำขอ

curl -i -X POST \

"https://graph.facebook.com/v21.0/90010177253934/media_publish?creation_id=18000748627392977&access_token=EAAOc..."

ตัวอย่างการตอบกลับ

{
  "id": "90010778390276"
}

โพสต์แบบคลิป Reels

คลิป Reels คือวิดีโอแบบสั้นที่มีสิทธิ์ปรากฏอยู่ในแท็บ Reels ของแอพ Instagram หากเป็นไปตามข้อมูลจำเพาะบางอย่างและได้รับเลือกจากอัลกอริทึมของเรา หากต้องการเผยแพร่คลิป Reels ให้ทำตามขั้นตอนสำหรับการเผยแพร่โพสต์ที่มีสื่อรายการเดียว และระบุพารามิเตอร์ media_type=REELS พร้อมกับพาธไปยังวิดีโอดังกล่าวโดยใช้พารามิเตอร์ video_url

คลิป Reels ไม่ใช่สื่อประเภทใหม่ แม้ว่าคุณจะตั้งค่า media_type=REELS ขณะที่เผยแพร่คลิป Reels หากคุณเผยแพร่คลิป Reels แล้วส่งคำขอช่อง media_type ค่าที่ส่งคืนมาจะเป็น VIDEO หากต้องการดูว่าวิดีโอที่เผยแพร่ถูกกำหนดให้เป็นคลิป Reels หรือไม่ ให้ส่งคำขอช่อง media_product_type แทน

คุณสามารถใช้ตัวอย่างโค้ดบน GitHub (insta_reels_publishing_api_sample) เพื่อเรียนรู้วิธีเผยแพร่คลิป Reels ไปยัง Instagram ได้

Meta ได้เผยแพร่การเรียกใช้ API กราฟแบบครบชุดสำหรับ Instagram Reels บนแพลตฟอร์ม API ของ Postman เพื่อช่วยอำนวยความสะดวกให้กับผู้พัฒนามากขึ้น หากต้องการข้อมูลเพิ่มเติม โปรดดูคอลเลกชั่น Postman สำหรับ Facebook Reels และ Instagram Reels

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับคลิป Reels ที่เอกสารประกอบเกี่ยวกับคลิป Reels สำหรับผู้พัฒนา

โพสต์แบบสตอรี่

มีเพียงบัญชีธุรกิจเท่านั้นที่สามารถเผยแพร่สตอรี่ด้วย API การเผยแพร่เนื้อหาได้ในขณะนี้

สตอรี่คือวิดีโอและรูปภาพที่ได้รับการโพสต์เป็นสตอรี่บน Instagram หากต้องการเผยแพร่สตอรี่ ให้ทำตามขั้นตอนเดียวกันสำหรับการเผยแพร่โพสต์ที่มีสื่อรายการเดียว และระบุพารามิเตอร์ media_type=STORIES พร้อมกับพาธไปยังรูปภาพ/วิดีโอดังกล่าวโดยใช้พารามิเตอร์ image_url หรือ video_url

หมายเหตุ: สตอรี่ไม่ใช่สื่อประเภทใหม่ แม้ว่าคุณจะตั้งค่า media_type=STORIES ในขณะเผยแพร่สตอรี่ก็ตาม หากคุณเผยแพร่สตอรี่แล้วส่งคำขอช่อง media_type ของสตอรี่นั้น ระบบจะส่งคืนค่ามาเป็น IMAGE/VIDEO หากต้องการระบุว่ารูปภาพ/วิดีโอที่เผยแพร่ได้รับการกำหนดว่าเป็นสตอรี่หรือไม่ ให้ส่งคำขอช่อง media_product_type แทน

โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้

โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้เป็นขั้นตอนใหม่ล่าสุดสำหรับการเผยแพร่เนื้อหา Instagram ที่รองรับการอัพโหลดวิดีโอสำหรับคลิป Reels, สตอรี่แบบวิดีโอ และรายการวิดีโอแบบภาพสไลด์ media_types

โปรโตคอลใหม่นี้รองรับการสร้างสื่อ Instagram จากทั้งวิดีโอในเครื่องและวิดีโอ URL ที่โฮสต์แบบสาธารณะ โปรโตคอลดังกล่าวช่วยให้คุณสามารถดำเนินการอัพโหลดไฟล์ในเครื่องต่อได้หลังจากเครือข่ายหยุดชะงักหรือเกิดความล้มเหลวในการรับส่งข้อมูลอื่นๆ จึงช่วยประหยัดเวลาและแบนด์วิธในกรณีที่เครือข่ายขัดข้อง โดยยังคงข้อกำหนดจำเพาะของสื่อไว้เหมือนเดิม

ตำแหน่งข้อมูล

  • POST https://graph.facebook.com/{api-version}/{ig-user-id}/media — เริ่มต้นคอนเทนเนอร์การสร้างวิดีโอโดยตั้งค่า upload_type=resumable
  • POST https://rupload.facebook.com/ig-api-upload/{api-version}/{ig-container-id} — อัพโหลดวิดีโอจากไฟล์วิดีโอในเครื่องหรือ URL ที่โฮสต์ได้อย่างน่าเชื่อถือมากขึ้นโดยใช้โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้
  • POST https://graph.facebook.com/{api-version}/{ig-user-id}/media_publish — เผยแพร่สื่อที่อัพโหลดแล้วโดยใช้คอนเทนเนอร์ของสื่อ
  • GET /{ig-container-id}?fields=status_code — ตรวจสอบสิทธิ์และสถานะการเผยแพร่ของคอนเทนเนอร์ของสื่อ

คำแนะนำการเข้ารหัส URL แบบ HTML

  • ระบบรองรับพารามิเตอร์บางตัวในรูปแบบรายการ/Dict
  • อักขระบางตัวจำเป็นต้องได้รับการเข้ารหัสให้อยู่ในรูปแบบที่สามารถส่งผ่านอินเทอร์เน็ตได้ ตัวอย่างเช่น: user_tags=[{username:’ig_user_name’}] ได้รับการเข้ารหัสเป็น user_tags=%5B%7Busername:ig_user_name%7D%5D โดยที่ [ ได้รับการเข้ารหัสเป็น %5B และ { ได้รับการเข้ารหัสเป็น %7B สำหรับการแปลงเพิ่มเติม โปรดดูมาตรฐานการเข้ารหัส URL แบบ HTML

ขั้นตอนที่ 1: เริ่มต้นเซสชั่นการอัพโหลดสำหรับคลิป Reels, สตอรี่แบบวิดีโอ หรือรายการภาพสไลด์

ตัวอย่างคำขอสำหรับ Reels

curl -X POST "https://graph.facebook.com/{api-version}/{ig-user-id}/media" \
    -d "media_type=REELS" \
    -d "upload_type=resumable" \
    -d "caption={caption}"\
    -d "collaborators={collaborators-username}"
    -d "cover_url={cover-url}" \
    -d "audio_name={audio-name}" \
    -d "user_tags={user-tags}" \
    -d "location_id={location-id}" \
    -d "thumb_offset={thumb-offset}" \
    -H "Authorization: OAuth {access-token}"

ตัวอย่างคำขอสำหรับสตอรี่แบบวิดีโอ

curl -X POST "https://graph.facebook.com/{api-version}/{ig-user-id}/media" \
    -d "media_type=STORIES" \
    -d "upload_type=resumable" \
    -H "Authorization: OAuth {access-token}"

ตัวอย่างคำขอสำหรับรายการวิดีโอแบบภาพสไลด์

curl -X POST "https://graph.facebook.com/{api-version}/{ig-user-id}/media" \
    -d "media_type=VIDEO" \
    -d "is_carousel_item=true" \
    -d "upload_type=resumable" \
    -H "Authorization: OAuth {access-token}"

ตัวอย่างการตอบกลับ

{
   "id": "{ig-container-id}",
   "uri": "https://rupload.facebook.com/ig-api-upload/{api-version}/{ig-container-id}"
}

ขั้นตอนที่ 2: อัพโหลดวิดีโอโดยใช้โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้

การเรียกใช้ API กราฟส่วนใหญ่จะใช้โฮสต์ graph.facebook.com อย่างไรก็ตาม การเรียกใช้เพื่ออัพโหลดวิดีโอสำหรับคลิป Reels จะใช้ rupload.facebook.com

ไฟล์จากแหล่งที่มาต่อไปนี้รองรับไฟล์วิดีโอที่อัพโหลด:

  • ไฟล์ที่อยู่ในคอมพิวเตอร์ของคุณ
  • ไฟล์ที่โฮสต์บนเซิร์ฟเวอร์ที่เผยแพร่ต่อสาธารณะ เช่น CDN

ตัวอย่างคำขอสำหรับการอัพโหลดไฟล์วิดีโอในเครื่อง

เมื่อการเรียกใช้เซสชั่นการอัพโหลดแบบดำเนินการต่อได้ส่งคืน ig-container-id ให้อัพโหลดวิดีโอ

  • ดูให้แน่ใจว่าโฮสต์คือ rupload.facebook.com
  • media_type ทั้งหมดมีขั้นตอนการอัพโหลดวิดีโอเหมือนกัน
  • ig-container-id คือ ID ที่ส่งคืนจากการเรียกใช้เซสชั่นการอัพโหลดแบบดำเนินการต่อได้
  • access-token เป็นรายการเดียวกับที่ใช้ในขั้นตอนก่อนหน้า
  • offset จะได้รับการตั้งค่าให้กับไบต์แรกที่อัพโหลด โดยทั่วไปจะเป็น 0
  • file_size จะได้รับการตั้งค่าเป็นขนาดไฟล์ของคุณในหน่วยไบต์
  • Your_file_local_path จะได้รับการตั้งค่าเป็นพาธไฟล์ของไฟล์ในเครื่องของคุณ ตัวอย่างเช่น หากอัพโหลดไฟล์จากโฟลเดอร์ "ดาวน์โหลด" บน macOS พาธจะเป็น @Downloads/example.mov
curl -X POST "https://rupload.facebook.com/ig-api-upload/{api-version}/{ig-container-id}" \
     -H "Authorization: OAuth {access-token}" \
     -H "offset: 0" \
     -H "file_size: Your_file_size_in_bytes" \
     --data-binary "@my_video_file.mp4"

ตัวอย่างคำขอสำหรับการอัพโหลดวิดีโอที่โฮสต์แบบสาธารณะ

curl -X POST "https://rupload.facebook.com/ig-api-upload/{api-version}/{ig-container-id}" \
     -H "Authorization: OAuth {access-token}" \
     -H "file_url: https://example_hosted_video.com"

ตัวอย่างการตอบกลับ

// Success Response Message
{
  "success":true,
  "message":"Upload successful."
}

// Failure Response Message
{
  "debug_info":{
    "retriable":false,
    "type":"ProcessingFailedError",
    "message":"{\"success\":false,\"error\":{\"message\":\"unauthorized user request\"}}"
  }
}

ขั้นตอนที่ 3: (เฉพาะภาพสไลด์) สร้างคอนเทนเนอร์ภาพสไลด์

คุณสามารถทำตามขั้นตอนที่ 1 และ 2 ซ้ำอีกครั้งเพื่อสร้าง ig-container-ids หลายรายการโดยตั้งค่าพารามิเตอร์ is_carousel_item เป็น true จากนั้นสร้างคอนเทนเนอร์ภาพสไลด์เพื่อรวมรายการภาพสไลด์ทั้งหมด โดยรายการภาพสไลด์สามารถผสมกับรูปภาพและวิดีโอได้

curl -X POST "https://graph.facebook.com/{api-version}/{ig-user-id}/media" \
    -d "media_type=CAROUSEL" \
    -d "caption={caption}"\
    -d "collaborators={collaborator-usernames}" \
    -d "location_id={location-id}" \
    -d "product_tags={product-tags}" \
    -d "children=[{ig-container-id},{ig-container-id}...]" \
    -H "Authorization: OAuth {access-token}"

ขั้นตอนที่ 4: เผยแพร่สื่อ

สำหรับคลิป Reels และสตอรี่แบบวิดีโอ ระบบจะใช้ {ig-container-id} ที่สร้างในขั้นตอนที่ 1 เพื่อเผยแพร่วิดีโอ และสำหรับคอนเทนเนอร์ภาพสไลด์ ระบบจะใช้ {ig-container-id} ที่สร้างในขั้นตอนที่ 3 เพื่อเผยแพร่คอนเทนเนอร์ภาพสไลด์

curl -X POST "https://graph.facebook.com/{api-version}/{ig-user-id}/media_publish" \
    -d "creation_id={ig-container-id}" \
    -H "Authorization: OAuth {access-token}"

ขั้นตอนที่ 5: รับสถานะสื่อ

graph.facebook.com จะระบุตำแหน่งข้อมูล GET เพื่ออ่านสถานะของการอัพโหลด โดยช่อง video_status จะมีรายละเอียดเกี่ยวกับกระบวนการอัพโหลดในเครื่อง

  • uploading_phase จะบอกว่าไฟล์นั้นอัพโหลดสำเร็จหรือไม่ และมีการถ่ายโอนไบต์เป็นจำนวนไบต์เท่าไร
  • processing_phase มีรายละเอียดเกี่ยวกับสถานะของการประมวลผลวิดีโอหลังจากอัพโหลดไฟล์วิดีโอแล้ว
// GET status from graph.facebook.com
curl -X GET "https://graph.facebook.com/v19.0/{ig-container-id}?fields=id,status,status_code,video_status" \
    -H "Authorization: OAuth {access-token}"

ตัวอย่างคำขอจากตำแหน่งข้อมูล graph.facebook.com

// A successfully created ig container
{
  "id": "{ig-container-id}",
  "status": "Published: Media has been successfully published.",
  "status_code": "PUBLISHED",
  "video_status": {
    "uploading_phase": {
      "status": "complete",
      "bytes_transferred": 37006904
    },
    "processing_phase": {
      "status": "complete"
    }
  }
}

// An interrupted ig container creation, from here you can resume your upload in step 2 with offset=50002. 
{
  "id": "{ig-container-id}",
  "status": "Published: Media has been successfully published.",
  "status_code": "PUBLISHED",
  "video_status": {
    "uploading_phase": {
      "status": "in_progress",
      "bytes_transferred": 50002
    },
    "processing_phase": {
      "status": "not_started"
    }
  }
}

แท็กผู้มีส่วนร่วม

คุณสามารถเพิ่มผู้ใช้ Instagram สาธารณะในรูปภาพ ภาพสไลด์ และคลิป Reel เป็นผู้มีส่วนร่วมได้ และผู้ใช้ดังกล่าวจะได้รับคำเชิญให้เป็นผู้มีส่วนร่วมสำหรับสื่อนั้นๆ หากต้องการแท็กผู้ใช้ในรูปภาพ ให้ดำเนินการตามขั้นตอนสำหรับโพสต์ที่มีสื่อรายการเดียวข้างต้น แต่เมื่อสร้างคอนเทนเนอร์สื่อ ให้เพิ่มพารามิเตอร์ผู้มีส่วนร่วมและอาร์เรย์ของสตริงที่ระบุชื่อผู้ใช้ของผู้ใช้ที่คุณต้องการเชิญให้เป็นผู้มีส่วนร่วมบนสื่อนั้นๆ

ตัวอย่างคำขอ

POST graph.facebook.com/17841400008460056/media
?image_url=https://www.example.com/images/bronzed-fonzes.jpg
&caption=#BronzedFonzes!
&collaborators= [‘username1’,’username2’]

หมายเหตุ

  • ค่าผู้มีส่วนร่วมต้องเป็นอาร์เรย์ของสตริง
  • คุณสามารถแท็กได้เฉพาะผู้ใช้ที่มีบัญชี Instagram สาธารณะเท่านั้น
  • เพิ่มผู้มีส่วนร่วมไปยังสื่อได้ไม่เกิน 3 คน
  • ไม่สามารถเพิ่มผู้มีส่วนร่วมในสื่อของสตอรี่ได้

แท็กตำแหน่งที่ตั้ง

คุณสามารถใช้ API การค้นหาเพจได้ ทั้งนี้ต้องไม่ลืมใส่ช่อง `location` ในการสืบค้นหากต้องการค้นหาเพจที่มีชื่อตรงกับสตริงการค้นหา จากนั้น ให้แยกวิเคราะห์ผลลัพธ์เพื่อระบุเพจที่ได้รับการสร้างสำหรับตำแหน่งที่ตั้งจริง หากคุณใส่ ID ของเพจเมื่อเผยแพร่รูปภาพหรือวิดีโอ รูปภาพหรือวิดีโอดังกล่าวจะได้รับการแท็กด้วยตำแหน่งที่เกี่ยวข้องกับเพจนั้นๆ

ข้อจำกัด

เพจต้องมีข้อมูลตำแหน่งแบบละติจูดและลองจิจูดจึงจะมีสิทธิ์ในการแท็ก

ตรวจสอบยืนยันว่าเพจที่คุณต้องการใช้นั้นมีข้อมูลละติจูดและลองจิจูดในการตอบกลับแล้ว ระบบไม่อนุญาตให้สร้างคอนเทนเนอร์โดยใช้เพจที่ไม่มีข้อมูลตำแหน่ง โดยจะแสดงโค้ดข้อยกเว้นเป็น INSTAGRAM_PLATFORM_API__INVALID_LOCATION_ID

เมื่อคุณมี ID หน้าแล้ว ให้มอบหมาย ID ดังกล่าวไปยังพารามิเตอร์ location_id เมื่อเผยแพร่คอนเทนเนอร์วัตถุสำหรับสื่อรายการเดียวหรือภาพสไลด์

แท็กสินค้า

คุณสามารถเผยแพร่ทั้งโพสต์ที่มีสื่อรายการเดียวและโพสต์แบบภาพสไลด์พร้อมสินค้าสำหรับ Instagram Shopping เรียนรู้วิธีได้ที่คู่มือการแท็กสินค้า

แท็กผู้ใช้

คุณสามารถแท็กผู้ใช้ Instagram สาธารณะในรูปภาพได้ แล้วผู้ใช้ดังกล่าวจะได้รับการแจ้งเตือนว่าตนได้รับการแท็ก

ในการแท็กผู้ใช้ในรูปภาพ ให้ทำตามขั้นตอนสำหรับโพสต์ที่มีสื่อรายการเดียวข้างต้น แต่เมื่อสร้างคอนเทนเนอร์สื่อ ให้ใส่พารามิเตอร์ user_tags และอาร์เรย์อ็อบเจ็กต์ที่ระบุถึงผู้ใช้ Instagram ในรูปภาพ รวมถึงพิกัด x/y ภายในรูปภาพด้วย

หมายเหตุ: ไม่รองรับแท็กผู้ใช้สำหรับสื่อแบบวิดีโอในภาพสไลด์

ตัวอย่างคำขอ

POST graph.facebook.com/17841400008460056/media ?image_url=https://www.example.com/images/bronzed-fonzes.jpg &caption=#BronzedFonzes! &user_tags= [ { username:'kevinhart4real', x: 0.5, y: 0.8 }, { username:'therock', x: 0.3, y: 0.2 } ] 

ตัวอย่างนี้จะส่งคืน ID คอนเทนเนอร์ซึ่งคุณจะเผยแพร่ในเวลาต่อมาโดยใช้ตำแหน่งข้อมูลการเผยแพร่สื่อของผู้ใช้ Instagram

หมายเหตุ

  • ค่า user_tags ต้องเป็นอาร์เรย์ของอ็อบเจ็กต์ที่กำหนดรูปแบบด้วย JSON
  • คุณสามารถแท็กได้เฉพาะผู้ใช้ที่มีบัญชี Instagram สาธารณะเท่านั้น
  • อ็อบเจ็กต์ต้องมีทั้งสามคุณสมบัติ (username, x และ y) สำหรับผู้ใช้แต่ละราย
  • ค่า x และ y ต้องเป็นตัวเลข float ซึ่งมีที่มาจากด้านซ้ายบนของรูปภาพ โดยอยู่ในช่วงระหว่าง 0.01.0

การแก้ไขปัญหา

หากคุณสามารถสร้างคอนเทนเนอร์สำหรับวิดีโอ แต่ตำแหน่งข้อมูล POST /{ig-user-id}/media_publish ไม่ส่งคืน ID ของสื่อที่เผยแพร่ คุณสามารถดูสถานะการเผยแพร่ของคอนเทนเนอร์ได้ด้วยการสืบค้นตำแหน่งข้อมูล GET /{ig-container-id}?fields=status_code ตำแหน่งข้อมูลนี้จะส่งคืนข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้

  • EXPIRED — คอนเทนเนอร์ไม่ได้รับการเผยแพร่ภายใน 24 ชั่วโมงและหมดอายุแล้ว
  • ERROR — คอนเทนเนอร์ไม่สามารถดำเนินกระบวนการเผยแพร่ให้เสร็จสมบูรณ์ได้
  • FINISHED — คอนเทนเนอร์และอ็อบเจ็กต์สื่อพร้อมสำหรับการเผยแพร่แล้ว
  • IN_PROGRESS — คอนเทนเนอร์ยังอยู่ระหว่างกระบวนการเผยแพร่
  • PUBLISHED — อ็อบเจ็กต์สื่อของคอนเทนเนอร์ได้รับการเผยแพร่แล้ว

เราขอแนะนำให้สืบค้นสถานะของคอนเทนเนอร์หนึ่งครั้งต่อนาที เป็นระยะเวลาไม่เกิน 5 นาที

ข้อผิดพลาด

ดูข้อมูลอ้างอิงเกี่ยวกับรหัสข้อผิดพลาด