2017-11-11 198 views
0

我试图使用restfb从给定的Facebook页面的抓取后的名单(JAVA)获取后列出

列表fbPages = Arrays.asList( “178697151159 /帖”, “538560813021153 /帖” ); JSONObject fetchObjectsSubResults = client.fetchObjects(fbPages,JsonObject.class,Parameter.with(“fields”,“shares,created_time”),Parameter.with(“limit”,5));};

但我发现了来自Facebook的API运行时错误如下..有任何机构可以帮助我解决这个或者是在线程“主要” com.restfb这个不可能的(

例外。异常.FacebookOAuthException:接收到类型为OAuthException的Facebook错误响应:(#803)您请求的某些别名不存在:178697151159/posts ?, 538560813021153/posts?(code 803,subcode null) at com.restfb.DefaultFacebookClient $ Default.GraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:1278) at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:1195) at com.restf b.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:1136) 在com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:1058) 在com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:1020) 在com.restfb。默认的FacebookClient.fetchObjects(DefaultFacebookClient.java:476) at main.main(main.java:75)

+0

这看起来像你正在使用的方法,预计只传递页面_ids_,但你传递'page-id/posts'到它,图形API不识别为页面id那就不足为奇了。)你需要去检查你在那里使用的SDK /客户端库的文档,看看_right_方法是用什么id来指定你想要的边/字段。 – CBroe

回答

0

我建议每页使用1个调用。所以它应该是这样的:

Connection<Post> postConnection = client.fetchConnection(pageId+ "/posts", Post.class, Parameter.with("fields","shares,created_time"), Parameter.with("limit","5")); 

根据你的使用情况,您可以循环得到所有职位或结果与postConnection.getData()集的第一页取数据在postConnection与运行。

在这两种情况下,您最终都可以使用Post类型并访问您感兴趣的字段。其他字段为空。

顺便说一句,在单个呼叫中使用多个ID或者一个接一个地请求这些ID对Facebook调用没有任何影响。内部计算的金额相同;在你的情况下2.

+0

此外,我想解释您的问题开始的呼叫的正确语法。 在Facebook上从多个页面获取帖子的正确端点看起来像是'graph.facebook.com/posts?id = 178697151159,538560813021153'。 我认为这在RestFB中不受支持,只有没有端点的调用才能工作。但这只是一个猜测,我没有深入检查这个电话。如果这很重要,你可以在Github上打开一个问题... – Norbert

+0

@Norbet是的,它是为一页工作,这就是为什么我试图以同样的方式使用多个页面(我知道这是愚蠢的)。实际上,我担心的是我可以提供的api电话数量,但如果我一次打电话,包括所有的页面id,则会有所不同。如果没有区别,我可以使用循环。谢谢。顺便说一句,你有没有任何想法如何减少这个傀儡的API调用数量。 –

+0

取决于您的用例。如果你想获取所有帖子,你应该增加限制,因为这是每页的限制。如果你只需要前5个帖子,一切都好。在这种情况下唯一应该帮助的是webhook。只要Feed上发生新的事情,您就可以订阅页面订阅源并收到更新。例如,如果写了一篇新文章。所以,如果有新的东西,你只需要从Facebook调查数据。 – Norbert