內嵌 Instagram 帖子

您可以查詢 Instagram oEmbed 端點,從而獲取 Instagram 帖子的內嵌 HTML 和基本元數據,以便在其他網站或應用程式中顯示帖子內容。支援相片、影片、連續短片和動態消息帖子。

前往 Instagram 幫助中心,了解如何從公開的 Instagram 帖子或個人檔案獲取內嵌程式碼。

常見用途

  • 在網誌中嵌入帖子
  • 在網站中嵌入帖子
  • 在內容管理系統中顯示帖子
  • 在訊息應用程式中顯示帖子

必要條件

本指南假設您已註冊成為 Meta 開發人員,並已建立了一個 Meta 應用程式。

您需要準備好以下項目:

存取權限級別

存取憑證

基本網址

您可以透過 graph.facebook.com 主機存取所有端點。

端點

功能

限制

  • Instagram oEmbed 端點僅供用於在網站和應用程式中嵌入 Instagram 內容,不可將之用於其他用途。嚴禁將來自端點的元數據、專頁、帖子或影片內容(或其衍生內容)用於提供專頁、帖子或影片前端檢視以外的其他用途。此限制涵蓋使用、操控、擷取或保留元數據和內容的行為,包括但不限於透過元數據獲取專頁、帖子和影片資訊以作分析用途。
  • 不支援私人、已停用及設有年齡限制的 Instagram 帳戶之帖子。
  • 不支援已停用內嵌功能的帳戶。
  • 不支援限時動態。
  • 不支援 Shadow DOM。

限速

限速配額取決於每次要求中包含的應用程式存取憑證類型。

應用程式憑證限速

使用應用程式存取憑證的應用程式每 24 小時最多可傳送 500 萬次要求。

用戶端憑證傳輸率限制

用戶端憑證傳輸率限制大幅低於應用程式憑證傳輸率限制。由於傳輸率限制視乎應用程式活動而異,所以我們沒有列出具體限制。不過,一般來說,應用程式不會超過這個限制,除非應用程式執行與 Bot 類似的行為,例如一次傳送數千次要求,或者每個代理或應用程式用戶傳送數千次要求。

獲取內嵌 HTML

您可以透過程式輔助的方式,或是在 Instagram 應用程式內獲取內嵌 HTML。

如需透過程式輔助的方式獲取 Instagram 帖子的內嵌 HTML,請傳送要求至:

GET /instagram_oembed?url=<URL_OF_THE_POST>&access_token=<ACCESS_TOKEN>

<URL_OF_THE_POST> 替換為您想查詢的 Instagram 帖子網址,並將 <ACCESS_TOKEN> 替換為您的應用程式或用戶端存取憑證,或使用 Authorization HTTP 標題傳送憑證給我們。

Authorization: Bearer <ACCESS_TOKEN>

如果您使用的是用戶端存取憑證,請務必將此憑證與 Meta 應用程式編號結合起來,並用豎線將兩者分隔,否則要求將為無效。

成功後,API 將在回應中傳回 JSON 物件,其中包含帖子的內嵌 HTML 和其他數據。內嵌 HTML 將獲分配 html 屬性。

如需了解可用於擴展要求的查詢字串參數完整清單,請參閱 Instagram oEmbed 參考資料。您亦可以加入 fields 查詢字串參數,以指定需要傳回哪個欄位。如果不指定此項目,系統將會在回覆中傳回所有預設欄位。

要求範例

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

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

回應範例

某些值會使用省略號截斷(...)以便閱讀。

{
  "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 查詢字串參數接受下列網址格式:

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 包含指向 Instagram embed.js JavaScript 資料庫的參考項目。資料庫載入後會掃描頁面以取得帖子 HTML,並產生完成製作的帖子。如要單獨載入資料庫,請在要求中包含 omitscript=true 查詢字串參數。如要手動初始化內嵌 HTML,請在資料庫載入後呼叫 instgrm.Embeds.process() 函數。

帖子大小

內嵌式帖子為回應型帖子,會根據容器的大小而調整,亦即是說,其高度會隨著容器的寬度和說明文字長度而改變。您可以在要求中加入 maxwidth 查詢字串參數,以設定其寬度上限。

獲取縮圖

我們建議您儘可能顯示帖子的所有內嵌 HTML。如果無法做到這一點,您可以獲取帖子的縮圖圖像網址,並改為顯示此縮圖。不過,如果您選擇這樣做,則必須提供明確的圖像來源,包括原作者和 Instagram 來源,並提供您所查詢的 Instagram 帖子連結。

如要獲取帖子的縮圖網址和來源資訊,請傳送要求至:

GET /instagram_oembed
  ?url=<URL_OF_THE_POST>
  &maxwidth=<MAX_WIDTH>
  &fields=thumbnail_url,author_name,provider_name,provider_url
  &access_token=<ACCESS_TOKEN>

<URL_OF_THE_POST> 替換為您想查詢的 Instagram 帖子網址、將 <MAX_WIDTH> 替換為您想顯示的縮圖最大尺寸,並將 <ACCESS_TOKEN> 替換為您的應用程式或用戶端存取憑證。

要求範例

curl -i -X GET \
  "https://graph.facebook.com/v21.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/"
}

應用程式審查提交資料

當您提交應用程式以供審查,請在告訴我們您為何要求 Oembed Read > 請提供我們可用於測試 Oembed Read 的網址表格欄位中,使用 Instagram oEmbed 端點獲取官方 Facebook 專頁Instagram 專頁上任何公開帖子的內嵌 HTML。然後,將系統傳回的內嵌 HTML 新增至需要顯示 oEmbed 內容的地方,並在表格欄位輸入該頁面的網址。

在您獲准使用 oEmbed Read 功能後,您便可以使用相應網址來嵌入您的專頁、帖子或影片。