如何使用facebook API获取公共墙贴

时间:2013-03-25 16:20:50

标签: facebook api facebook-graph-api token facebook-wall

我试图从个人资料脸谱中获取墙贴。我对粉丝页面没有任何问题,我的用户令牌有效(至少对于粉丝页面而言)。

此帖子的示例: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它不会返回任何结果!它空了!

修改

2 个答案:

答案 0 :(得分:11)

修改

这个答案在Graph API版本的第一个版本中被回写。当时您可以使用用户ID获取用户提要,此时用户ID不再在应用之间共享。 facebook也创建了一个new 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 

并使用此令牌而不是使用您的用户令牌。

答案 1 :(得分:5)

我不知道这篇文章是否太旧了,但我在寻找解决问题的方法时才找到它。

无论如何,我只会说明我是如何设法从公共用户那里获取资讯的:

        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/并输入公共用户的脸书网址。

这几乎是你需要的一切。

现在编写你的ajax请求如下:

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

                }
            });
        });

您现在可以在控制台中看到结果。

使用成功功能以您希望的方式处理结果。