Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2011, 03h15   #1
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Par défaut Problème file_get_contents et erreur 400

Bonjour à tous,

Je bloque sur un problème qui me fait m'arracher les cheveux de la tête

Je veux utiliser file_get_contents() mais ça ne fonctionne que quand ça veut ...
Je m'explique :

Voici mon code
Code :
1
2
$token_url = "https://graph.facebook.com/" . $eventid . "/maybe?method=" . $method . "&" . $accesstoken . " ";
$response = json_decode(file_get_contents($token_url));
Voici le message d'erreur :
Code :
Warning: file_get_contents(https://graph.facebook.com/245440442161918/?method=post&AAADLZCBlbdEYBAG49zDerZAMiQH77R1i0ZCWxDdm3ZACCeoZA36X2bZC6B4yzJzwONe5VTn1uNzu5g1mnhMCMIrZC2R2LZCeBimZCQPM6NVx8yQZDZD ) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /home/site/www/admin/page.php on line 136
Seulement voila, j'ai tout essayé dans tous les sens et j'ai constaté que mon url tel que ne posait aucun problème :
Code :
$token_url = "https://graph.facebook.com/" . $eventid . "/";
Mais dès que j'en rajoute un peu dans l'url plus rien ne va :
Code :
$token_url = "https://graph.facebook.com/" . $eventid . "/maybe";
J'ai bien vérifié les balises de tous les côtés.
J'en conclus donc qu'il y a un problème dans mon url qui fait planter file_get_contents().
Y a t'il un bonne façon de formater mon url ?

J'utilise déjà file_get_contents() dans d'autres pages et ça fonctionne bien (quoiqu'au début j'avais le même problème puis ça a fonctionné correctement tout seul ... sans raison).

Je ne vois pas du tout la solution.
Quelqu'un pour m'aider ?

Merci par avance,

Aurélien
__________________
Salutations à tous les amis du forum Développez

http://www.dusk.fr
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 11h25   #2
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Bonjour,
Je suis étonnée que cela marche sur du "https"
ou bien sur un autre onglet tu es connecté ?
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 13h17   #3
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Merci pour ta réponse.

Ce qui fonctionnait hier ne fonctionne plus aujourd'hui. Et bien évidemment je n'ai touché à rien.

Le code provient de Facebook, donc à priori j'aurai pensé que cela fonctionnerait.

A la base je m'identifie avec Facebook Connect. La connexion est ok. Je récupère bien les codes de Facebook sauf qu'à l'étape file_get_contents() ça me renvoi ce warning.

Existe t'il une manière de procéder à la place de file_get_contents() ?

Merci beaucoup pour ton aide.

Aurélien
__________________
Salutations à tous les amis du forum Développez

http://www.dusk.fr
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 14h02   #4
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Escuses moi, mais je ne sais t'aider car il faudrait connaitre JSON
Mais pour la premiére ligne, peux tu me donner la forme du contenu de tes variables
"https://graph.facebook.com/" . $eventid . "/maybe?method=" . $method . "&" . $accesstoken . " ";

$eventid
$method
$accesstoken

Bien sur en mettant des login bidon, que je testes de mon coté.
Merci
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 14h18   #5
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Voici mon code pour récupérer mon access_token de Facebook:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
$app_id = "mon-app-id";
$app_secret = "mon-code-secret";
$my_url = "mon-url";
$code = $_REQUEST["code"];
 
	   if(empty($code)) {
		 $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
		 $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
		   . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
		   . $_SESSION['state'];
 
		 echo("<script> top.location.href='" . $dialog_url . "'</script>");
	   }
 
 
		 $token_url = "https://graph.facebook.com/oauth/access_token?"
		   . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
		   . "&client_secret=" . $app_secret . "&code=" . $code;
 
		 $response = file_get_contents($token_url);
		 $params = null;
		 parse_str($response, $params);
 
		 $graph_url = "https://graph.facebook.com/me?access_token=" 
		   . $params['access_token'];
 
		 $accesstoken = $params['access_token'];
		 echo $accesstoken ;  
 
		 $user = json_decode(file_get_contents($graph_url));
Voici le code pour mettre à jour mon statut sur Facebook :

Code :
1
2
3
4
5
6
7
 
$accesstoken	=	$value['accesstoken'];
$method		=	'post';
$eventid		=	$value['eventid'];
 
$token_url = "https://graph.facebook.com/" . $eventid . "/maybe?method=" . $method . "&" . $accesstoken . " ";
$response = json_decode(file_get_contents($token_url));
Les variables proviennent d'un tableau que je récupère en post via un formulaire.

Merci pour ton aide.
__________________
Salutations à tous les amis du forum Développez

http://www.dusk.fr
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 14h48   #6
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Je n'arrives pas a faire tourner cet API,
J'ais demandée au responsable des APIs Réseaux sociaux (bovino)
de déplacer ton message sur "APIs Réseaux sociaux"

S'il juge util de le faire, tu aura plus de chances d'étre aidé efficacement.
Désolée.
Christele
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 14h51   #7
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Merci pour ton aide.

Ce qui est surprenant c'est que la première partie de mon code fonctionne sous Firefox mais pas sous Safari.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
$app_id = "mon-app-id";
$app_secret = "mon-code-secret";
$my_url = "mon-url";
$code = $_REQUEST["code"];
 
	   if(empty($code)) {
		 $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
		 $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
		   . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
		   . $_SESSION['state'];
 
		 echo("<script> top.location.href='" . $dialog_url . "'</script>");
	   }
 
 
		 $token_url = "https://graph.facebook.com/oauth/access_token?"
		   . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
		   . "&client_secret=" . $app_secret . "&code=" . $code;
 
		 $response = file_get_contents($token_url);
		 $params = null;
		 parse_str($response, $params);
 
		 $graph_url = "https://graph.facebook.com/me?access_token=" 
		   . $params['access_token'];
 
		 $accesstoken = $params['access_token'];
		 echo $accesstoken ;  
 
		 $user = json_decode(file_get_contents($graph_url));
Par contre la deuxième partie ne marche pas du tout et m'affiche un warning.

Code :
1
2
3
4
5
6
7
 
$accesstoken	=	$value['accesstoken'];
$method		=	'post';
$eventid		=	$value['eventid'];
 
$token_url = "https://graph.facebook.com/" . $eventid . "/maybe?method=" . $method . "&" . $accesstoken . " ";
$response = json_decode(file_get_contents($token_url));
C'est à n'y plus rien comprendre.

Aurélien
__________________
Salutations à tous les amis du forum Développez

http://www.dusk.fr
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h38.


 
 
 
 
Partenaires

Hébergement Web