Parser un flux Facebook ?? est-ce vraiment faisable

Signaler
-
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
-
Bonjour,

Je sèche depuis plusieurs jours sur un soucis que je ne comprends moi-même pas. Sur facebook, mes contacts postent régulièrement des informations que le qualifierais "événementielles" (organisations d'événements à une heure et une date). Ce "flux" au format ICS est accessible de cette manière sur facebook : une fois loggé, cliquer à droite dans le menu sur Evenements et déscendez tout en bas de la page, vous y verrez "Exporter les événements" (pour peu que vous ayez des "amis" qui en organisent.) >Une vois cliqué sur ce sien, une fenetre souvre (une calque plus exactement) et facebook a la gentillesse de vous donner une URL de VOTRE "fichier" ICS généré dynamiquement. (Ouf, j'ai fini de posé le cadre)

Passons aux choses sérieuses : j'ai copié-collé cette URL dans google Agenda, il est interprété PARFAITEMENT. Seul hic, maintenant c'est d'aller le "lire" en PHP. Je n'y arrive pas. Le message retourné est un message stipulant, si je comprends bien, que je n'ai pas les droits d'accès. Soit, je veux bien l'admettre mais pourquoi tous les sites comme google Calendar, ou les outils logiciels savent allez lire cette source de données ?

Le me permets de joindre à mon poste les quelques tentatives qui échouent. J'ai oublié, n'ayant pas réussi à lire directement le flux de facebook, je suis allé lire le flux de google agenda dans lequel est importé mon agenda facebook !
N'hésitez pas à critiquer, je suis pas un "montre" de la prog, juste un petit developpeur (c'est quand même mon métier )

1. Premier test :
<?php
$homepage =   file_get_contents('http://www.google.com/calendar/feeds/  [ICI MON ADRESSE GMAIL]  /public/basic');
echo $homepage;
?>


2. Deuxièe tentative :
<?php
$homepage   = file_get_contents('ICI L'URL DONNE PAR GOOGLE D'IMPORTATION DE L'AGENDA');
echo $homepage;
?>


3. Autre tentative :
<?php
$homepage = file_get_contents('http://www.facebook.com/ical/u.php?uid=100000122090427&key=caa650d949');
echo $homepage;
?>

Là aussi je me heurte à une erreur de droit d'accès. Mais alors, comment google calendar peut-il bien lire ce flux ???

Merci de votre aide, je continue à creuser...

1 réponse

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Salut,

Il y a deux trucs à vérifier. Premièrement, assure toi que dans ton php.ini, que tu as ceci :

allow_url_fopen = On

Deuxième chose possible est que Facebook, désactive certaines options quand tu as un User-Agent bizarroïde (Ex.: <script>alert('XSS')</script>). Essaie de passer un User-Agent valide dans ta requête. Pour rajouter des header supplémentaires avec file_get_contents, tu regarderas la documentation de ceci :

http://www.php.net/manual/en/function.stream-context-create.php