【发布时间】:2018-10-25 15:57:38
【问题描述】:
我知道这个问题被问了很多,但随着 Facebook 的最新变化,我很难弄清楚如何完成这项任务。由于这些变化,许多教程和答案不再相关。
我想要做的是获取我自己的个人 Facebook 提要帖子(我的帖子)并将它们显示在我网站的“新闻”部分。我想使用 Graph API,因为 Facebook Page social plugins 有奇怪的宽度限制,对我不起作用。
要访问我的 OWN 供稿上的 OWN 帖子以放置在我的 OWN 网站上,我似乎很难获得有效的访问令牌。我是否需要进行“Facebook 登录”才能进行权限处理?
我创建了一个 Facebook 开发者帐户,创建了一个应用程序,并且似乎使用以下代码成功获取了令牌:
let myToken = ''
fetch(`https://graph.facebook.com/oauth/access_token?client_id=${id}&client_secret=${secret}&grant_type=client_credentials`)
.then(response => response.json())
.then(token => (myToken = token.access_token))
.catch(e => console.log(e))
当我去使用那个令牌时:
fetch(`https://graph.facebook.com/v3.0/me/feed?limit=10&fields=id%2Cfull_picture%2Ccreated_time%2Cfrom%7Bid%2Cname%2Cpicture%7D%2Cmessage%2Clink%2Ctype%2Cshares%2Cobject_id%2Cstory&access_token=${myToken}`)
.then(response => response.json())
.then(data => console.log(data))
.catch(e => console.log(e))
我收到一个错误:必须使用活动访问令牌来查询有关当前用户的信息。
我不想要任何用户交互(评论、“喜欢”等),我只想阅读消息并加载图像(如果存在)。我会将访客介绍给 互动的“在 Facebook 上查看”链接。
使用 Graph API Explorer Tool,我能够成功获取数据,但我需要选择“获取用户访问令牌”并选择一堆权限。
我可以从 Graph API Explorer 获取令牌并让我想要的代码工作,但它只能持续 1 小时(短期)到 2 个月(长期)。并且宁愿不不断地将硬编码令牌更新到我的页面中。
我错过了什么吗?
提前致谢。
【问题讨论】:
-
“我不想要任何用户交互” - 如果您可以在没有用户交互的情况下获得访问令牌,那将非常奇怪(并且非常危险)。
-
@luschn 我应该澄清一下——“用户交互”是指我不想“喜欢”或发表评论。我只是希望出现一个帖子列表,其中包含一个返回 Facebook 帖子的链接,以便访问者可以在那里点赞/评论。
-
@贾斯汀。你能解决这个问题吗?我正在尝试做同样的事情。
-
@C_blunt,将 Facebook 提要添加到我的客户网站是一个“如果它易于实现会很酷,但不是必需的”功能。最后,我们认为每 60 天手动更新令牌的麻烦并不能证明使用 API 是合理的。相反,我们使用简单的 CMS 在他们的网站上构建了一个自定义新闻部分。可以理解的是,Facebook 现在正在严格控制他们的 API。希望将来事情会更轻松一些,我会重新审视这个功能。
标签: javascript facebook api facebook-graph-api