2010-11-09 45 views
2

J'essaie d'exporter Fans de Page Facebook.Extrait de la base de données de fans de la page Facebook

Le plus proche que j'ai trouvé était this article.

Il déclare:

fans de se déplacer d'une page Facebook est pas encore pris en charge par l'API Facebook. Heureusement, l'interface Web Facebook utilise un simple appel AJAX/JSON pour fournir les données lorsque vous affichez la page.les données lorsque vous affichez la page.

Et il explique ce qu'il fait comme ceci:

Ma stratégie pour définir ces données sans WAS pour renifler le trafic réseau avec l'outil Wireshark , puis rejouer le HTTP appels avec un rubis script.calls avec un script ruby.

Je ne pas savoir quoi que ce soit à propos de Ruby, donc je commencé à essayer avec des scripts PHP gauche dans l'un des commentaires, celui par: « Etienne Bley »

Le script va comme this.

Le script dit que vous pouvez télécharger Charles Proxy pour trouver cette variables:

$cookie 
$node_id 
$post_form_id 
$fb_dtsg 

Lorsque j'utilise Charles Proxy doux, et connectez-vous comme administrateur, je reçois ceci: alt text

Et de là, je obtenir ce que je suppose est la variable cookie:

alt text

BTW Est-il sûr de partager le cookie entier ?? est-ce utile? (Si elle est modifier dès que possible je vais)

Le script dit aussi:

// 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) 

Je ne peux pas comprendre ce qu'il veut dire par: getting the 2nd page

Alors, mes questions:

1) Quelles sont ces variables?

2) Quelles sont leurs valeurs? Comment/devrais-je les obtenir?

3) Avoir ce jeu de scripts correctement est la seule chose dont j'ai besoin pour que ce script fonctionne?

J'espère que la question est assez claire, sinon s'il vous plaît poser toutes les questions dont vous avez besoin!

Merci d'avance!

Répondre

2

Je ne connais pas Charles Proxy Soft, mais j'ai utilisé l'excellent Inspector de Chrome pour tracer la requête.

Étapes:

  1. Utilisez Chrome pour accéder à l'page Facebook vous intéresse
  2. ouvrir l'Inspecteur (CTRL + Maj + J sur Windows), accédez à l'onglet "Ressources" et "Activer le suivi des ressources".
  3. Sur la page Facebook, cliquez sur "Tout afficher" dans la zone Ventilateurs sur le côté gauche de la page.
  4. Faites défiler vers le bas de la liste des ventilateurs, puis cliquez sur "Suivant"
  5. Dans l'onglet Ressources, vous aurez une demande à /ajax/social_graph/fetch.php. Cliquez dessus, et dans l'onglet En-têtes, vous verrez ce dont vous avez besoin. Dans mon exemple: Chrome Inspector

Je suis sûr que vous pouvez le faire avec une centaine d'autres programmes, je trouve plus facile à utiliser Chrome car il est déjà là :)

+0

vous donner je vais une essayer!! coutures assez simple! Merci!! – Trufa

+0

Merci, je peux voir tout sauf le "Cookie:", c'est juste pas là. Je l'ai utilisé avec cookie je pourrais obtenir (avec l'autre doux) et j'ai obtenu ceci: Avertissement: fopen (posh_fb_output.txt) [fonction.fopen]: n'a pas pu ouvrir le flux: Permission refusée dans/home/pimod/public_html/fanlist/fanlist .php sur la ligne 61 – Trufa

+0

@Trufa c'est un problème avec les permissions sur votre serveur web. Vous devez vous assurer que php peut écrire dans le répertoire dans lequel vous vous trouvez ('fanlist' dans ce cas). Si vous utilisez un client FTP, recherchez les permissions de ce dossier et ajoutez "write" pour "group" et "other" (si les permissions sont numériques, ce serait "777"). Si vous avez un accès à la console, lancez 'chmod 777/home/pimod/public_html/fanlist'. – MartinodF

0

D'accord, il semble que tout cela soit simple.Je recommande d'obtenir une copie de Fiddler pour inspecter ce plan vous-même.

J'ai ouvert une page de fans, je suis allé voir les fans et j'ai cliqué sur la page suivante. J'ai vu une requête POST pour http://www.facebook.com/ajax/social_graph/fetch.php?__a=1. Ce que j'ai récupéré était un très bon tableau JSON, contenant tous les fans.

Si nous inspectons les variables affichées, il devient évident ...

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 

Quoi qu'il en soit, ce qui vous intéresse est la page et limite. Je parie que si vous définissez la page à 0 et la limite à 500 ou peu importe, vous obtiendrez ce que vous recherchez. Dans le cas où vous ne pouvez pas modifier la limite de manière fiable, laissez-le à 100 et continuez à incrémenter la page. Aussi, j'ai mes cookies, avec les informations de la session. Comment vous obtiendrez ceux-ci et post de PHP, je ne sais pas, mais j'espère que cela vous donne des choses à faire.

Encore une fois, obtenez Fiddler, inspectez ce qui se passe lorsque vous parcourez la page.