您可查询 Instagram oEmbed 端点,从而获取 Instagram 帖子的嵌入式 HTML 和基本元数据,以便在其他网站或应用中展示帖子内容。支持照片、视频、Reels 和动态帖子。
请访问 Instagram 帮助中心,了解如何从 Instagram 公开帖或主页中获取嵌入代码。
本指南假设您是已注册的 Meta 开发者 并创建了一个 Meta 应用
您需要具备以下条件:
您可以通过 graph.facebook.com
托管网址访问所有端点。
流量限制取决于每次请求中包含的应用访问口令类型。
使用应用访问口令的应用每 24 小时最多可发出 500 万次请求。
客户端口令流量限制显著低于应用口令流量限制。由于实际的流量限制会因应用活动而异,所以我们没有列出实际数值。然而,应用一般不会达到此限制,除非其展示出类似于机器人的行为,例如批量发送数千次请求,或每个代理或应用用户均发出数千次请求。
您可以以编程方式或在 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}
嵌入式 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 功能后,您可以使用相应网址嵌入您的公共主页、帖子或视频。