You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在网站嵌入Facebook/Instagram时间线?Graph API旧版本替代方案咨询

如何在网站中嵌入Facebook/Instagram时间线(替代废弃的Graph API 2.3方案)

嘿,刚好我对这个问题挺熟悉的,给你整理一下目前可行的方案,替代已经废弃的Graph API 2.3:

Facebook 社交时间线嵌入方案

目前Facebook官方最推荐的就是Page Plugin,这完全可以替代旧版API的功能,用来嵌入公共主页的动态时间线。它支持自定义宽度、高度,还能选择是否显示封面图、帖子时间戳、粉丝头像墙这些参数,适配性很强。

使用步骤

  1. 去Facebook的开发者工具里找到Page Plugin的配置界面,输入你的公共主页链接,调整好显示参数。
  2. 把生成的两段代码嵌入到你的网站里:
    • 一段是JS SDK的引入代码,建议放在页面的<body>底部,避免阻塞页面加载;
    • 另一段是嵌入容器代码,放在你想要展示时间线的位置。

示例代码参考:

<!-- 引入Facebook JS SDK -->
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v18.0" nonce="YOUR_NONCE_VALUE"></script>

<!-- 嵌入Page Plugin容器 -->
<div class="fb-page" data-href="https://www.facebook.com/YOUR_PAGE_NAME" data-tabs="timeline" data-width="" data-height="" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true">
  <blockquote cite="https://www.facebook.com/YOUR_PAGE_NAME" class="fb-xfbml-parse-ignore">
    <a href="https://www.facebook.com/YOUR_PAGE_NAME">Your Page Name</a>
  </blockquote>
</div>

记得把YOUR_PAGE_NAME换成你的公共主页名称,YOUR_NONCE_VALUE可以根据网站安全需求设置,也可以暂时留空(不过官方建议加上,防止XSS攻击)。

注意事项

  • 只能嵌入公共主页的时间线,个人账号的动态因为隐私限制,是没法直接嵌入的;
  • 本地测试的时候,可能需要用ngrok之类的工具把本地服务暴露到公网,不然SDK可能加载失败。

Instagram 时间线嵌入方案

Instagram目前没有像Twitter那样直接的"用户时间线嵌入工具",但有两个官方方案可以满足需求:

1. 单帖嵌入(Instagram Embeds)

如果只是想展示单条帖子,这个工具超级方便。打开你要嵌入的Instagram帖子,右上角点击"嵌入",复制生成的代码直接粘贴到网站里就行。

示例代码:

<blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/p/YOUR_POST_LINK/" data-instgrm-version="14">
  <!-- 这里是自动生成的内容,不用手动修改 -->
</blockquote>
<script async src="//www.instagram.com/embed.js"></script>

替换YOUR_POST_LINK为你的帖子链接就OK了,它会自动渲染成和Instagram上一样的帖子样式。

2. 多帖时间线(Graph API)

如果需要展示多条帖子组成的时间线,就得用Instagram的Graph API了。不过这个有几个前提:

  • 你的Instagram账号必须是商业账号或创作者账号
  • 需要在Facebook开发者平台创建应用,关联你的账号,然后申请pages_show_listinstagram_basic等权限,通过审核。

审核通过后,你可以在后端调用API获取用户的媒体内容:

GET /{instagram-user-id}/media?fields=id,caption,media_url,permalink,timestamp

拿到返回的帖子数据后,就可以用HTML/CSS/JS自己构建类似时间线的布局了,灵活性很高,但开发成本相对大一点。

总结

  • Facebook:直接用官方的Page Plugin就能搞定,完全替代旧的Graph API方案;
  • Instagram:单帖用Embed工具快速嵌入,多帖时间线需要用Graph API(需商业/创作者账号+权限审核)。

内容的提问来源于stack exchange,提问作者Ankit Bhardwaj

火山引擎 最新活动