我是facebook api的全新人,正在开展一个非常小的项目。在详细了解他们的api文档之前,我想问一个简单的问题。
我的应用程序需要使用facebook用户名/密码登录,转到朋友墙/组墙,爬过所有墙上的帖子并将其转储到数据库中以供进一步分析。如果没有javascript,facebook没有完全无法使用,那么一个简单的http客户端就可以解决问题。由于它将成为一个桌面应用程序,我不愿意去一个完整的基于服务器的应用程序。
那么在FB朋友/小组墙上爬行的最简单方法是什么呢?如果我问错了问题,请纠正我,因为我有零FB知识。
PS:我想要一个基于java的库/包装器,但任何语言都可以......
答案 0 :(得分:0)
目前的api有一些严重的错误。要么您只从墙上获得50件物品,要么只获得最后30天的物品,这是第一件。
请先查看facebook开发人员错误列表。 Developer Bug list
答案 1 :(得分:0)
好的,在快速搜索中,似乎答案是FB Graph API。我可以看到几乎所有语言都有图形api的包装器。对于Java,我找到了RestFB& BatchFB。如果可以的话,请随时参考任何更有用/更高级的API。
更新:
我找不到任何扩展权限集来访问用户的组墙/用户的朋友墙?是否可以使用应用程序?
答案 2 :(得分:0)
Facebook Graph API将是最好的解决方案,但如果它是错误的,正如Herr Kaleun指出的那样,你需要超过50个项目或30天的帖子,那么我还有另一个想法。
它可能无法满足您的分发要求,但如果确实如此,您可以将其实现为GreaseMonkey用户脚本。 GreaseMonkey是一个支持javascript的Web客户端自动化系统。它存在于Web浏览器中,由javascript编写和控制,也可以实际模拟影响javascript的用户。 GreaseMonkey是一个Firefox插件,但Chrome也有用户脚本的原生支持(语言略有不同,但大多数GreaseMonkey用户脚本都可以在Chrome中使用)。
答案 3 :(得分:0)
先决条件:
您的群组需要公开查看您需要注册制作Facebook应用,才能获得APP_ID和SECRET_KEY。
然后,(在PHP中的示例,但应该很容易转换为另一种语言):
$url =
"https://graph.facebook.com/{$group_id}/feed?access_token=APP_ID|SECRET_KEY";
$data = json_decode(file_get_contents($url));
foreach($data->data as $d)
{
?>
<div>
<a href="http://facebook.com/profile.php?id=<?=$d->from->id?>">
<img border="0" alt="<?=$d->from->name?>"
src="https://graph.facebook.com/<?=$d->from->id?>/picture"/>
</a>
</div>
<div>
<a href="http://facebook.com/profile.php?id=<?=$d->from->id?>">
<?=$d->from->name?></a>
on <?=date('F j, Y H:i',strtotime($d->created_time))?>
<br/>
<?=$d->message?>
</div>
</div>
<?
}
这将获得墙上的帖子。至于限制,我不知道。