เอกสารนี้นี้ได้รับการอัพเดตแล้ว
คำแปลเป็น ภาษาไทย ยังไม่เสร็จสมบูรณ์
ภาษาอังกฤษที่อัพเดต: 26 เม.ย.

oEmbed ของ Instagram

คุณสามารถสืบค้นตำแหน่งข้อมูล oEmbed ของ Instagram เพื่อรับ HTML สำหรับฝังและเมตาดาต้าพื้นฐานของโพสต์ใน Instagram ได้ ทั้งนี้เพื่อแสดงโพสต์ดังกล่าวในอีกเว็บไซต์หรืออีกแอพหนึ่ง รองรับโพสต์ที่เป็นรูปภาพ, วิดีโอ, คลิป Reels และคำแนะนำ

การใช้งานทั่วไป

  • การเรนเดอร์โพสต์ในแอพส่งข้อความ
  • การฝังโพสต์ในเว็บไซต์และบล็อก
  • การเรนเดอร์โพสต์ในระบบจัดการเนื้อหา

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

ตำแหน่งข้อมูลคำอธิบาย

GET /instagram_oembed

รับ HTML สำหรับฝังและเมตาดาต้าพื้นฐานของโพสต์ใน Instagram

ข้อจำกัด

  • ตำแหน่งข้อมูล oEmbed ของ Instagram มีไว้ใช้สำหรับฝังเนื้อหาของ Instagram ในเว็บไซต์และแอพเท่านั้น โดยจะไม่ใช้เพื่อจุดประสงค์อื่นใด ห้ามไม่ให้มีการใช้เมตาดาต้าและเนื้อหาของเพจ โพสต์ หรือวิดีโอ (หรือแหล่งที่มาของรายการเหล่านั้น) เพื่อจุดประสงค์อื่นใดนอกเหนือไปจากการมอบมุมมองการแสดงผลแบบฟรอนท์เอนด์ของเพจ โพสต์ หรือวิดีโอโดยเด็ดขาด ข้อห้ามนี้จะรวมไปถึงการใช้ การจัดการ การดึง หรือการคงไว้ซึ่งเมตาดาต้าและเนื้อหา โดยรวมถึงแต่ไม่จำกัดเพียงการรับข้อมูลเกี่ยวกับเพจ โพสต์ และวิดีโอจากเมตาดาต้าเพื่อจุดประสงค์ในการวิเคราะห์
  • ระบบจะไม่รองรับโพสต์ที่อยู่บนบัญชี Instagram ส่วนตัวที่ไม่ได้ใช้งานและมีการจำกัดอายุ
  • ระบบจะไม่รองรับบัญชีที่ปิดใช้งานการฝัง
  • ระบบจะไม่รองรับสตอรี่
  • ระบบไม่รองรับ Shadow DOM

การตรวจสอบแอพ

แอพของคุณจะต้องผ่าน การตรวจสอบแอพสำหรับฟีเจอร์ oEmbed Read ก่อนจึงจะใช้งาน oEmbed ได้

สำหรับช่องโปรดระบุ URL ที่เราสามารถทดสอบ Oembed Read ได้ในแบบฟอร์ม ให้ใช้ตำแหน่งข้อมูล oEmbed ของ Instagram เพื่อรับ HTML สำหรับฝังของโพสต์สาธารณะทั้งหมดบนเพจ Facebook หรือเพจ Instagram อย่างเป็นทางการของเรา (หรือรับ HTML สำหรับฝังของเพจแต่ละแบบเหล่านั้น) เพิ่ม HTML สำหรับฝังที่ระบบส่งกลับมาไปยังเพจของคุณเองที่คุณจะแสดงเนื้อหา oEmbed และป้อน URL ของเพจนั้นลงในช่องดังกล่าวในแบบฟอร์ม

เมื่อคุณได้รับการอนุมัติให้ใช้ฟีเจอร์ oEmbed Read แล้ว คุณจะสามารถฝังเพจ โพสต์ หรือวิดีโอของคุณเองโดยใช้ URL ของรายการนั้นๆ ได้

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

ตำแหน่งข้อมูล oEmbed ของ Instagram จะต้องมีโทเค็นการเข้าถึงแอพ (แนะนำ) หรือโทเค็นการเข้าถึงไคลเอ็นต์อย่างใดอย่างหนึ่ง

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

หากแอพของคุณใช้เซิร์ฟเวอร์แบ็กเอนด์ เราขอแนะนำให้คุณใช้โทเค็นการเข้าถึงแอพเมื่อเข้าถึงตำแหน่งข้อมูล oEmbed ขีดจำกัดอัตราจะขึ้นอยู่กับประเภทของโทเค็นที่รวมอยู่ในคำขอ และขีดจำกัดอัตราของโทเค็นแอพจะจำกัดคำขออยู่ที่ 5 ล้านรายการต่อวัน

คำแนะนำสำหรับการสร้างโทเค็นการเข้าถึงแอพสามารถดูได้จากส่วนโทเค็นแอพของเอกสารประกอบเกี่ยวกับโทเค็นการเข้าถึงของเรา

โปรดทราบว่าโทเค็นการเข้าถึงแอพไม่ควรใช้ในรูปแบบฝั่งไคลเอ็นต์ โดยควรรักษาไว้อย่างปลอดภัยและจัดเก็บในเซิร์ฟเวอร์ของคุณเสมอ หากแอพของคุณต้องใช้โทเค็นทางฝั่งไคลเอ็นต์ ให้ใช้โทเค็นการเข้าถึงไคลเอ็นต์แทน

โทเค็นการเข้าถึงไคลเอ็นต์

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

หากต้องการรับโทเค็นการเข้าถึงไคลเอ็นต์ ให้ลงชื่อเข้าใช้แดชบอร์ดของแอพและไปที่การตั้งค่า > ขั้นสูง > การรักษาความปลอดภัย > โทเค็นของไคลเอ็นต์

โทเค็นการเข้าถึงไคลเอ็นต์ไม่สามารถใช้ในคำขอตำแหน่งข้อมูล oEmbed เพียงโดดๆ ได้ โดยต้องใช้ร่วมกับ ID ของแอพที่คุณมี ซึ่งต่างจากโทเค็นการเข้าถึงแอพ หากต้องการดำเนินการดังกล่าว ให้ใส่โทเค็นของคุณไว้ท้าย ID ของแอพ โดยคั่นด้วยสัญลักษณ์ขีดตั้ง (|) ดังนี้

{app-id}|{client-token}

ตัวอย่างเช่น:

access_token=1234|5678

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

ขีดจำกัดอัตราจะขึ้นอยู่กับประเภทของโทเค็นการเข้าถึงที่แอพของคุณรวมไว้ในคำขอแต่ละรายการ

ขีดจำกัดอัตราโทเค็นของแอพ

แอพที่ใช้โทเค็นการเข้าถึงแอพจะสามารถสร้างคำขอได้สูงสุดถึง 5 ล้านรายการต่อเวลา 24 ชั่วโมง

ขีดจำกัดอัตราโทเค็นของไคลเอ็นต์

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

การรับ HTML สำหรับฝัง

หากต้องการรับ HTML สำหรับฝังของโพสต์บน Instagram ให้ส่งคำขอไปยัง

GET /instagram_oembed?url={url}&access_token={access-token}

แทนที่ {url} ด้วย URL ของโพสต์บน Instagram ที่คุณต้องการสืบค้นและ {access-token} ด้วยโทเค็นการเข้าถึงแอพหรือไคลเอ็นต์ (หรือส่งมาให้เราในส่วนหัว HTTP) หากคุณกำลังใช้โทเค็นการเข้าถึงไคลเอ็นต์ โปรดทราบว่าคุณจะต้องใช้โทเค็นนั้นร่วมกับ ID ของแอพโดยใช้สัญลักษณ์ขีดตั้ง ไม่เช่นนั้นคำขอจะล้มเหลว

เมื่อสำเร็จ API จะตอบกลับด้วยอ็อบเจ็กต์ JSON ที่มี HTML สำหรับฝังของโพสต์ดังกล่าวและข้อมูลเพิ่มเติม ระบบจะมอบหมาย HTML สำหรับฝังไปยังคุณสมบัติ html

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

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

curl -X GET \
  "https://graph.facebook.com/v20.0/instagram_oembed?url=https://www.instagram.com/p/fA9uwTtkSN/&access_token=IGQVJ..."

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

ค่าบางตัวอาจถูกย่อด้วยจุดไข่ปลา (...) เพื่อให้อ่านได้ง่าย

{
  "version": "1.0",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/",
  "type": "rich",
  "width": 658,
  "html": "<blockquote class=\"instagram-media\" data-instgrm-ca...",
  "thumbnail_width": 640,
  "thumbnail_height": 640
}

รูปแบบ URL

พารามิเตอร์สตริงการสืบค้น url จะยอมรับรูปแบบ URL ดังต่อไปนี้:

https://www.instagram.com/p/{media-shortcode}/
https://www.instagram.com/tv/{media-shortcode}/https://www.instagram.com/{username}/guide/{slug}/{guide_id}

JS สำหรับฝัง

HTML สำหรับฝังจะมีจุดอ้างอิงไปยังคลัง JavaScript embed.js ของ Instagram เมื่อคลังโหลด จะมีการสแกนเพจเพื่อหา HTML ของโพสต์ และสร้างโพสต์ที่ผ่านการเรนเดอร์อย่างสมบูรณ์ หากคุณต้องการโหลดคลังแยกต่างหาก ให้เพิ่มพารามิเตอร์สตริงการสืบค้น omitscript=true ไว้ในคำขอของคุณ หากต้องการเริ่มต้นการทำงานของ HTML แบบฝังด้วยตนเอง ให้เรียกใช้ฟังก์ชั่น instgrm.Embeds.process() หลังจากการโหลดคลัง

ขนาดของโพสต์

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

การรับภาพขนาดย่อ

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

หากต้องการรับ URL ภาพขนาดย่อของโพสต์และข้อมูลการระบุที่มา ให้ส่งคำขอไปยัง

GET /instagram_oembed
  ?url={url}
  &maxwidth={maxwidth}
  &fields=thumbnail_url,author_name,provider_name,provider_url
  &access_token={access-token}

แทนที่ {url} ด้วย URL ของโพสต์บน Instagram ที่คุณต้องการสืบค้น รวมถึง {maxwidth} ขนาดใหญ่ที่สุดของภาพขนาดย่อที่คุณต้องการเรนเดอร์ และ {access-token} พร้อมโทเค็นการเข้าถึงแอพหรือไคลเอ็นต์

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

curl -i -X GET \
  "https://graph.facebook.com/v20.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN&maxwidth=320&fields=thumbnail_url%2Cauthor_name%2Cprovider_name%2Cprovider_url&access_token=96481..."

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

ค่าบางตัวอาจถูกย่อด้วยจุดไข่ปลา (...) เพื่อให้อ่านได้ง่าย

{
  "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.288...",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/"
}

การส่งโทเค็นการเข้าถึงในเฮดเดอร์

หากคุณไม่ต้องการใส่โทเค็นการเข้าถึงในสตริงการสืบค้นของคุณ ให้ส่งมาให้เราผ่านส่วนหัว HTTP Authorization แทน

Authorization: Bearer {access-token}

ตัวอย่างเช่น:

curl -i -X GET \
  "https://graph.facebook.com/v20.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN" \
  --header "Authorization: Bearer 96481..."