从Facebook API获取自己的Feed

时间:2018-05-15 18:00:13

标签: javascript facebook api facebook-graph-api

我知道这个问题已被问到很多,但随着Facebook的最新变化,我很难搞清楚如何完成这项任务。由于这些变化,许多教程和答案不再相关。

我想要做的是获取我自己的个人Facebook Feed帖子(我的帖子)并将其显示在"新闻"我网站上的部分。我想使用Graph API,因为Facebook Page social plugins具有对我不起作用的奇怪宽度限制。

要访问我的OWN Feed上的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))

我收到错误消息:必须使用有效的访问令牌来查询有关当前用户的信息。

我不想要任何用户互动(评论,"喜欢"等),我只想要读取消息并加载图像(如果有的话)。我将访客称为a "在Facebook上观看"交互链接。

使用Graph API Explorer工具,我能够成功获取数据,但我需要选择"获取用户访问令牌"并选择一堆权限。

我可以从Graph API资源管理器获取令牌并获得我想要的代码,但它只持续1小时(短暂的)到2个月(长寿)。并且不希望不断地将硬编码的令牌更新到我的页面中。

我在这里错过了什么吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

确保为此请求使用正确的访问令牌。

对于此请求,您应该使用用户令牌而不是 App令牌(带有| in的那个)。

我用我自己的令牌尝试了你的代码,当使用用户令牌时,它给了我一个数据对象(在我的情况下是空的)。

使用 App Token 时,Graph API会以“响应”必须使用活动访问令牌来查询有关当前用户的信息。“消息,与你到了。

在此页面上阅读有关访问令牌的更多信息:https://developers.facebook.com/docs/facebook-login/access-tokens

让我知道你是怎么过的。