您可以查詢 Instagram oEmbed 端點,從而獲取 Instagram 帖子的內嵌 HTML 和基本元數據,以便在其他網站或應用程式中顯示帖子內容。支援相片、影片、連續短片和導覽帖子。
端點 | 說明 |
---|---|
獲取 Instagram 帖子的內嵌 HTML 和基本元數據。 |
應用程式必須通過 oEmbed Read 功能的應用程式審查,才能使用 oEmbed。
填寫提供用於測試 Oembed Read 的網址表格欄位時,請使用 Instagram oEmbed 端點獲取我們官方 Facebook 專頁或 Instagram 專頁上任何一個公開帖子的內嵌 HTML(或者獲取 Facebook 或 Instagram 專頁的內嵌 HTML)。將傳回的內嵌 HTML 加到您要顯示 oEmbed 內容的頁面,然後在表格欄位中輸入此頁面的網址。
在您獲准使用 oEmbed Read 功能後,您便可以使用相應網址來嵌入您的專頁、帖子或影片。
Instagram oEmbed 端點需要使用應用程式存取憑證(建議使用)或用戶端存取憑證。
如果您的應用程式需要使用後端伺服器,我們建議您使用應用程式存取憑證來存取 oEmbed 端點。限速配額取決於要求中的憑證類型;而應用程式憑證限速配額為每天最多 500 萬次要求。
如需有關產生應用程式存取憑證的指示,請查閱存取憑證文件中的應用程式憑證部分。
請注意,應用程式存取憑證不可在用戶端使用。憑證必須時刻安全地儲存在您的伺服器中。如果您的應用程式必須在用戶端使用憑證,請改用用戶端存取憑證。
如果應用程式必須透過流動裝置、網頁瀏覽器等用戶代理存取 oEmbed 端點,則應用程式必須使用用戶端存取憑證,並需要遵循用戶端憑證限速配額。
如要獲取用戶端存取憑證,請登入您的應用程式管理中心,並前往設定 > 進階 > 帳戶安全 > 用戶端憑證。
用戶端存取憑證與應用程式存取憑證不同,您不能單單用它來要求 oEmbed 端點,並必須配合應用程式編號加以使用。如要執行此動作,將您的憑證附加至應用程式編號的尾端,並使用豎線分隔 (|
):
{app-id}|{client-token}
例如:
access_token=1234|5678
限速配額取決於每次要求中包含的應用程式存取憑證類型。
使用應用程式存取憑證的應用程式每 24 小時最多可傳送 500 萬次要求。
用戶端憑證傳輸率限制大幅低於應用程式憑證傳輸率限制。由於傳輸率限制視乎應用程式活動而異,所以我們沒有列出具體限制。不過,一般來說,應用程式不會超過這個限制,除非應用程式執行與 Bot 類似的行為,例如一次傳送數千次要求,或者每個代理或應用程式用戶傳送數千次要求。
如需獲取 Instagram 帖子的內嵌 HTML,請傳送要求至:
GET /instagram_oembed?url={url}&access_token={access-token}
將 {url}
替換為您想查詢的 Instagram 帖子網址,並將 {access-token}
替換為您的應用程式或用戶端存取憑證(或使用 HTTP 標題傳送憑證給我們)。如果您使用的是用戶端存取憑證,請務必將此憑證與應用程式編號結合起來,並用豎線將兩者分隔,否則要求將為無效。
成功後,API 將在回應中傳回 JSON 物件,其中包含帖子的內嵌 HTML 和其他數據。內嵌 HTML 將獲分配 html
屬性。
如需了解可用於擴展要求的查詢字串參數完整清單,請參閱 Instagram oEmbed 參考資料。您亦可以加入 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
查詢字串參數接受下列網址格式:
https://www.instagram.com/p/{media-shortcode}/
https://www.instagram.com/tv/{media-shortcode}/
https://www.instagram.com/{username}/guide/{slug}/{guide_id}
內嵌 HTML 包含指向 Instagram embed.js JavaScript 資料庫的參考項目。資料庫載入後會掃描頁面以取得帖子 HTML,並產生完成製作的帖子。如要單獨載入資料庫,請在要求中包含 omitscript=true
查詢字串參數。如要手動初始化內嵌 HTML,請在資料庫載入後呼叫 instgrm.Embeds.process()
函數。
內嵌式帖子為回應型帖子,會根據容器的大小而調整,亦即是說,其高度會隨著容器的寬度和說明文字長度而改變。您可以在要求中加入 maxwidth
查詢字串參數,以設定其寬度上限。
我們建議您儘可能顯示帖子的所有內嵌 HTML。如果無法做到這一點,您可以獲取帖子的縮圖圖像網址,並改為顯示此縮圖。不過,如果您選擇這樣做,則必須提供明確的圖像來源,包括原作者和 Instagram 來源,並提供您所查詢的 Instagram 帖子連結。
如要獲取帖子的縮圖網址和來源資訊,請傳送要求至:
GET /instagram_oembed ?url={url} &maxwidth={maxwidth} &fields=thumbnail_url,author_name,provider_name,provider_url &access_token={access-token}
將 {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/" }
如果您不想在要求的查詢字串中包含存取憑證,可以使用 Authorization
HTTP 標題來傳送給我們。
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..."