我试图从个人资料facebook获取墙贴。我对粉丝页面没有任何问题,我的用户令牌有效(至少对于粉丝页面而言)。
这篇文章的例子: https://www.facebook.com/aurelia.filion/posts/10151342315613445
你可以看到帖子是公开的。
所以我尝试:
graph.facebook.com/529628444_10151342315613445?access_token=MY_TOKEN
graph.facebook.com/10151342315613445?access_token=MY_TOKEN
它返回:
“错误”:{
“message”:“不支持的获取请求。”,
“type”:“GraphMethodException”,
“代码”:100
在我的Api图浏览器中,我无法看到该用户的帖子。
graph.facebook.com/529628444?fields=posts(529628444是aurelia.filion的id)
那么有可能获得墙贴吗?它是公开的应该是获得它们的一种方式
谢谢
好吧,我将以不同的方式解释,我的目标是通过图表获得此类帖子(除了这些,我可以获得所有其他帖子)
facebook.com/aurelia.filion/posts/10151342315613445
facebook.com/aurelia.filion/posts/10151336175793445
但我收到错误“不支持获取请求”。
我已尝试用户令牌和应用令牌这个链接不起作用:
graph.facebook.com/529628444_10151342315613445?access_token=MY_TOKEN
当我尝试使用Feed时,我没有看到我想要的帖子。
如果我要求发布帖子graph.facebook.com/529628444/posts?limit=100&access_token=TOKEN
我可以看到一切(链接,照片等),除了怪异的帖子!
我怎么能得到这些帖子,这是一个象征性的问题,它看起来像是一个状态,是不是得到了,我的意思是我们需要权限吗?
graph.facebook.com/529628444?fields=statuses&access_token=TOKEN它不会返回任何结果!它是空的!
编辑
编辑
这个答案是在Graph API版本的第一个版本中写回来的。那时您可以使用用户ID获取用户提要,此时用户ID不再在应用之间共享。 facebook也创建了一个 新的API 它只适用于它的一些合作伙伴。
因此,除非用户使用了您的应用,否则您现在无法获得公共用户Feed。你仍然可以获得Pages feed。
旧版
这个答案是针对图形api v1
所以你必须使用它 https://graph.facebook.com/529628444?fields=feed&access_token=YOUR_TOKEN
如果你想要的只是查询公共数据,你可以通过这样做创建一个APP令牌:
https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&
grant_type=client_credentials
并使用此令牌而不是使用您的用户令牌。
我不知道这篇文章是否太旧了,但我在寻找解决问题的方法时才找到它。
无论如何,我将展示如何设法从公共用户获取提要:
var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";
var fburl = "https://graph.facebook.com/201317759900688?fields=feed&";
$.get(fbul, function(auth_token){
$.ajax({
dataType: "jsonp",
url: fburl+auth_token,
success: function(res){
console.log(res);
}
});
});
这里有一个小小的解释:
你必须去facebook开发控制台(https://developers.facebook.com)并注册一个新的网络应用程序。只需在顶部导航中继续“我的应用程序”,然后继续“添加新应用程序”。完成后,您可以访问您的应用程序ID和您的APP秘密。
第一个链接“var fbul”是获取访问Feed所需的access_token。
var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";
只需将[AppID]和[AppSecret]更改为您自己的密钥即可。
第二个链接是访问feed(我们不在这里添加acces_token,因为我们在ajax请求中这样做)
var fburl = "https://graph.facebook.com/201317759900688?fields=feed&";
此处的号码(2013177599 ....)是来自公共站点的频道ID。要获得这个数字,请继续 http://findmyfacebookid.com/ 并输入facebook URL给公共用户。
这几乎是你需要的一切。
现在写下你的ajax请求如下:
$.get(fbul, function(auth_token){
$.ajax({
dataType: "jsonp",
url: fburl+auth_token,
success: function(res){
console.log(res);
}
});
});
您现在可以在控制台中看到结果。
使用success函数以您希望的方式处理结果。