IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème file_get_contents et erreur 400


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $token_url = "https://graph.facebook.com/" . $eventid . "/";
    Mais dès que j'en rajoute un peu dans l'url plus rien ne va :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je suis étonnée que cela marche sur du "https"
    ou bien sur un autre onglet tu es connecté ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    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

  4. #4
    Invité
    Invité(e)
    Par défaut
    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

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Voici mon code pour récupérer mon access_token de Facebook:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  6. #6
    Invité
    Invité(e)
    Par défaut
    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

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Erreur 400 : BAD REQUEST - File_get_contents
    Par The Goion dans le forum Langage
    Réponses: 5
    Dernier message: 30/12/2011, 12h02
  2. [VB6]affichage d'une feuille modale / message d'erreur 400
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/01/2006, 18h37
  3. Problème d export erreur 904
    Par hatoug dans le forum Oracle
    Réponses: 11
    Dernier message: 20/01/2006, 12h10
  4. Problème message d'erreur et action sur clic
    Par rangernoir dans le forum Access
    Réponses: 5
    Dernier message: 26/09/2005, 12h10
  5. problème de Portabilité (erreur 1407)
    Par cgMorpheus dans le forum MFC
    Réponses: 3
    Dernier message: 06/03/2005, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo