2

我搜索了所有关于 Facebook 图形 API 的帖子,但没有找到任何关于它的信息。这就是问题所在。

我正在为一家公司开发 iPhone 应用程序。对于这个应用程序中的新闻部分,我正在使用 Facebook 图形 API 从这家公司的 Facebook 页面的墙上提取所有帖子和评论。我这样做的方式是:首先我通过发送请求来拉取所有帖子:

[facebook requestWithGraphPath:@"company name/feed" andDelegate:self];

我收到了 NSDictionary,其中包含所有帖子和有关它的信息,包括评论数量。我将所有帖子放在 tableView 中,当您点击其中一个帖子时,评论视图控制器会打开。我要求对这篇文章发表评论的地方:

NSString *postId = [self.post objectForKey:@"id"];
NSString *request = [NSString stringWithFormat:@"%@/comments" ,postId];
[facebook requestWithGraphPath:request andDelegate:self];

我收到了一系列评论。但其中一些失踪了。我猜这是因为人们在他们的帐户中有一些隐私设置。
我只是想知道也许有人有同样的问题并且知道如何解决这个问题。或者知道用户需要在其 Facebook 帐户中更改哪些隐私设置才能看到他的评论。

谢谢。

4

3 回答 3

2

只是想添加这个作品:获取所有基本墙帖信息的提要,然后分别获取每个帖子的评论。需要更复杂的刷新方法和一些小技巧(尽可能相信您的评论数组而不是 JSON 评论计数),但至少它是正确的。

正在抓取提要以获取 post_id,然后分别抓取每个帖子以获取正确的信息。然而,就在 2 天前,我发生了一些非常有趣的事情,iOS 中的相同 facebook 发布请求将返回 3 条评论中的 2 条,Chrome 浏览器返回 1 条评论(最新的一条),而 Firefox 中的请求返回了另外 2 条评论但不是最新的。使用浏览器测试响应时,我是否登录并不重要。这发生在大约一半的带有评论的帖子中。

所以我尝试在 Facebook 开发者网站的 URL 中使用访问令牌,并将请求更改为这个特定的帖子 - 立即返回所有正确的信息!以至于我什至创建了一个新的 Facebook 应用程序来获得一个新的应用程序 ID,并在 XCode 中创建一个新项目来消除所有可能性 - 没有任何区别。

所以感谢这个线程,我尝试了 {post_id}/comments GET,它工作正常。我已经为喜欢做了同样的事情,以消除潜在的进一步破坏!

于 2011-02-17T09:30:52.357 回答
1

Graph API 以神秘的方式工作,实际上打开了无数错误,但为了简单起见,您需要传递一个有效的 access_token 来检索来自 facebook 的所有评论。

含义https://graph.facebook.com/page_id/feed?access_token=blah

API 将返回一个带有链接的 JSON 以使用分页。您可以使用它们浏览或直接检索大量数据:

https://graph.facebook.com/page_id/feed?access_token=blah&limit=1000

请注意,使用高于 1000 的限制会导致错误和可能的无效数据……这是一个已知错误。自 2011 年起,分页逻辑中也存在可能修复或未修复的错误……您必须检查一下。

评论计数和实际计数也有问题,并且在处理大页面时可能会关闭(在每个帖子的评论超过 5k 的页面上会发生这种情况)。获得计数本身也存在一些问题......

对不起,如果我不能帮助你更多,但图形 API 仍然有点混乱,并且计算了相当多的错误。您必须尝试看看它是否按照文档中的说明工作。但是明确地添加一个访问令牌,它不会受到伤害,而且你很可能会得到你想要的数据......除非你遇到了一个错误。

于 2011-01-11T13:56:42.777 回答
0

此外,/feed 中的评论数量有时与 /post_id/comments 中的不同

例如 :

graph.facebook.com/146154582080623/feed 返回 1 条评论,数量为 3

graph.facebook.com/146154582080623_184735008222580/comments(这是上一页的帖子)返回2条评论

所以我想知道隐私是否是问题所在。

于 2011-01-11T09:13:22.667 回答