如何使用facebook API获取公共墙帖子

如何使用facebook API获取公共墙帖子,facebook,api,facebook-graph-api,token,facebook-wall,Facebook,Api,Facebook Graph Api,Token,Facebook Wall,我正试图从facebook上的个人资料中获取帖子。我对风扇页面没有问题,并且我的用户令牌是有效的(至少对于风扇页面是有效的) 这篇文章的例子: 正如你所看到的,这篇文章是公开的 所以我试着: graph.facebook.com/529628444_101513423215613445?访问令牌=我的令牌 graph.facebook.com/10151342315613445?访问令牌=我的令牌 它返回: “错误”:{ “消息”:“不支持的获取请求”, “类型”:“GraphMethodExc

我正试图从facebook上的个人资料中获取帖子。我对风扇页面没有问题,并且我的用户令牌是有效的(至少对于风扇页面是有效的)

这篇文章的例子: 正如你所看到的,这篇文章是公开的

所以我试着: graph.facebook.com/529628444_101513423215613445?访问令牌=我的令牌 graph.facebook.com/10151342315613445?访问令牌=我的令牌

它返回: “错误”:{ “消息”:“不支持的获取请求”, “类型”:“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_101513423215613445?访问令牌=我的令牌

当我尝试使用feed时,我看不到我想要的帖子

如果我请求posts graph.facebook.com/529628444/posts?limit=100&access\u token=token 我可以看到一切(链接,照片等),除了那些奇怪的帖子

我怎样才能得到这些帖子,这是一个令牌问题,它看起来像是一个状态,它是不同的获得,我的意思是我们需要权限吗? graph.facebook.com/529628444?fields=status&access\u token=token它不返回任何结果!它是空的

编辑

编辑 这个答案是在Graph API版本的第一个版本中写回的。那时,你可以通过使用用户ID获取用户提要,现在用户ID不再在应用程序之间共享。facebook还创建了一个仅对其部分合作伙伴可用的用户提要

所以现在你不可能获得公共用户源,除非用户已经使用了你的应用程序。但是你仍然可以获得页面源

旧版本 这个答案适用于graph api v1

因此,您必须使用此
https://graph.facebook.com/529628444?fields=feed&access_token=YOUR_TOKEN

如果您只想查询公共数据,则可以通过以下操作创建应用令牌:

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开发控制台()并注册一个新的web应用程序。只需在顶部导航中选择“我的应用程序”并选择“添加新应用程序”。完成后,你就可以访问你的应用程序ID和应用程序机密

第一个链接“var fbul”是获取访问提要所需的访问令牌

var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";
只需将[AppID]和[AppSecret]更改为您自己的密钥

第二个链接是访问提要(我们不在这里添加acces\u令牌,因为我们在ajax请求中这样做了)

此处的数字(2013177599…)是来自公共网站的频道ID。要获得该数字,只需继续并向公共用户输入facebook URL

这就是你所需要的一切

现在编写ajax请求,如下所示:

$.get(fbul, function(auth_token){
            $.ajax({
                dataType: "jsonp",
                url: fburl+auth_token,
                success: function(res){
                    console.log(res);

                }
            });
        });
现在,您将在控制台中看到结果


使用success函数以您想要的方式处理结果。

不确定此页面为什么会显示“不支持的获取请求错误”当您没有有效的令牌时。我已使用有效的用户和应用程序访问令牌尝试了此操作,并且能够获取数据。如果我在没有令牌或使用过期令牌的情况下尝试,我会得到不受支持的get请求错误,而不是正确的错误。请查看我的。没有比此更简单的了。您能更详细地解释如何获取数据吗rom以墙贴为例的公共墙贴。我不知道如何实现您所描述的内容。谢谢!新的Facebook API定义不再适用。效果很好,除了查找ID的工具之外,这一个对我很有用-
$.get(fbul, function(auth_token){
            $.ajax({
                dataType: "jsonp",
                url: fburl+auth_token,
                success: function(res){
                    console.log(res);

                }
            });
        });