我知道这个问题已被问到很多,但随着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个月(长寿)。并且不希望不断地将硬编码的令牌更新到我的页面中。
我在这里错过了什么吗?
提前致谢。
答案 0 :(得分:0)
确保为此请求使用正确的访问令牌。
对于此请求,您应该使用用户令牌而不是 App令牌(带有| in的那个)。
我用我自己的令牌尝试了你的代码,当使用用户令牌时,它给了我一个数据对象(在我的情况下是空的)。
使用 App Token 时,Graph API会以“响应”必须使用活动访问令牌来查询有关当前用户的信息。“消息,与你到了。
在此页面上阅读有关访问令牌的更多信息:https://developers.facebook.com/docs/facebook-login/access-tokens
让我知道你是怎么过的。