嵌入 Instagram 帖子

您可查询 Instagram oEmbed 端点,从而获取 Instagram 帖子的嵌入式 HTML 和基本元数据,以便在其他网站或应用中展示帖子内容。支持照片、视频、Reels 和动态帖子。

请访问 Instagram 帮助中心,了解如何从 Instagram 公开帖或主页中获取嵌入代码。

常见用途

  • 在博客中嵌入帖子
  • 在网站中嵌入帖子
  • 在内容管理系统中展示帖子
  • 在消息应用中展示帖子

要求

本指南假设您是已注册的 Meta 开发者 并创建了一个 Meta 应用

您需要具备以下条件:

访问级别

访问口令

基本网址

您可以通过 graph.facebook.com 托管网址访问所有端点。

端点

功能

限制

  • Instagram oEmbed 端点用于在网站和应用中嵌入 Instagram 内容。不可将其用于任何其他用途。严禁将来自端点的元数据、主页、帖子或视频内容(或其衍生内容)用于除提供主页、帖子或视频前端视图以外的任何其他用途。此限制涵盖使用、操纵、提取或保留元数据和内容的行为,包括但不限于从元数据中获取关于公共主页、帖子和视频的信息以供分析。
  • 不支持私密、不再使用和有年龄限制的 Instagram 账户上的帖子。
  • 不支持已禁用 Embeds 的账户。
  • 不支持快拍。
  • 不支持 Shadow DOM。

流量限制

流量限制取决于每次请求中包含的应用访问口令类型。

应用口令流量限制

使用应用访问口令的应用每 24 小时最多可发出 500 万次请求。

客户端口令流量限制

客户端口令流量限制显著低于应用口令流量限制。由于实际的流量限制会因应用活动而异,所以我们没有列出实际数值。然而,应用一般不会达到此限制,除非其展示出类似于机器人的行为,例如批量发送数千次请求,或每个代理或应用用户均发出数千次请求。

获取嵌入式 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 功能后,您可以使用相应网址嵌入您的公共主页、帖子或视频。