2

我正在尝试导出 Facebook 页面粉丝。

我越接近找到这篇文章

它指出:

Facebook API 尚不支持从 Facebook 页面获取粉丝。幸运的是,Facebook Web 界面使用简单的 AJAX/JSON 调用在您查看页面时提供数据。在查看页面时提供数据。

他解释了他的所作所为:

我设置这些数据的策略是使用 Wireshark 工具嗅探网络流量,然后使用 ruby​​ 脚本重放 HTTP 调用。使用 ruby​​ 脚本调用。

我对红宝石一无所知,所以我开始尝试在其中一个评论中留下一个 PHP 脚本,其中一个是:“Etienne Bley”

脚本是这样的。

脚本说你可以下载Charles Proxy来找到这个变量:

$cookie
$node_id
$post_form_id
$fb_dtsg

当我使用 Charles Proxy Soft 并以管理员身份登录时,我得到以下信息: 替代文字

从那里我得到我猜是 cookie 变量:

替代文字

顺便说一句,分享整个 cookie 是否安全?有帮助吗?(如果是我会尽快编辑)

该脚本还说:

// set settings in these 4 lines from results of charles when getting the 2nd page of "Get All Fans" in FB ( you need to be admin of fan page to do this )

我无法理解他的意思:getting the 2nd page

所以,我的问题:

1)这个变量是什么?

2)他们的价值观是什么?我应该/怎样才能得到它们?

3)正确设置这个脚本是我唯一需要这个脚本工作的东西吗?

我希望问题足够清楚,如果没有,请提出您需要的任何问题!

提前致谢!

4

2 回答 2

2

我不知道 Charles Proxy Soft,但我使用 Chrome 的优秀 Inspector 来跟踪请求。

脚步:

  1. 使用 Chrome 导航到您感兴趣的 Facebook 页面
  2. 打开检查器(在 Windows 上为 CTRL+Shift+J),转到“资源”选项卡和“启用资源跟踪”。
  3. 在 Facebook 页面上,单击页面左侧“粉丝”框中的“查看全部”。
  4. 滚动到粉丝列表底部,然后单击“下一步”
  5. 在“资源”选项卡中,您将请求/ajax/social_graph/fetch.php. 单击它,然后在“标题”选项卡中,您将看到所需的内容。在我的例子中: 铬检查器

我相信你可以用一百个不同的程序来做到这一点,我发现使用 Chrome 更容易,因为它已经存在 :)

于 2010-11-09T18:01:42.683 回答
0

好吧,看来这一切都很简单。我建议您获取Fiddler的副本以自己检查此计划。

我打开了一个粉丝页面,去查看粉丝,然后点击下一页。我看到了对http://www.facebook.com/ajax/social_graph/fetch.php?__a=1的 POST 请求。我得到的是一个非常好的 JSON 数组,包含所有的粉丝。

如果我们检查发布的变量,就会很明显......

edge_type = fan
page = 1
limit = 100
node_id = 123123123123123123123 (ID of the fan page I'm assuming)
class = FanManager
post_form_id = 97823498723498 (No idea, but I bet you can get this from the dialog)
fb_dtsg = a1s3d5f (No idea)
lsd = 
post_form_id_source = AsyncRequest

无论如何,您感兴趣的是页面和限制。我敢打赌,如果您将 page 设置为 0 并限制为 500 或其他任何内容,您将获得所需的内容。如果您无法可靠地更改限制,只需将其保留为 100 并保持递增页面。另外,我的 cookie 里面还有会话信息。我不知道您将如何从 PHP 中获取这些内容和发布内容,但我希望这能给您一些帮助。

再次,获取Fiddler,检查浏览页面时发生的情况。

于 2010-11-09T17:56:51.767 回答