12

我正在尝试从个人资料 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

它返回:“错误”:{“消息”:“不支持的获取请求。”,“类型”:“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

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

如果我请求帖子 graph.facebook.com/529628444/posts?limit=100&access_token=TOKEN 我可以看到除该死的帖子之外的所有内容(链接、照片等)!!

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

编辑

4

2 回答 2

11

编辑

这个答案是在 Graph API 版本处于其第一个版本时写回的。那时您可以使用用户 ID 获取用户提要,现在用户 ID 不再在应用程序之间共享。facebook 还创建了一个新的 API,它只对它的一些合作伙伴可用。

因此,除非用户使用过您的应用,否则您现在无法获取公共用户供稿。不过,您仍然可以获得页面提要。

旧版

此答案适用于图形 api v1

所以你必须使用这个https://graph.facebook.com/529628444?fields=feed&access_token=YOUR_TOKEN

如果您只想查询公共数据,您可以通过以下方式创建 APP Token:

https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&
grant_type=client_credentials 

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

于 2013-03-25T16:25:04.100 回答
7

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

无论如何,我将展示我是如何设法从公共用户那里获取提要的:

        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 ) 并注册一个新的网络应用程序。只需继续顶部导航中的“我的应用程序”,然后继续“添加新应用程序”。完成后,您可以访问您的 App ID 和您的 APP Secret。

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

var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";

只需将 [AppID] 和 [AppSecret] 更改为您自己的密钥。

第二个链接是访问提要(我们没有在此处添加 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);

                }
            });
        });

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

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

于 2015-07-17T14:14:01.923 回答