2017-05-24 3 views
0

Je suis en train d'obtenir facebook jeton d'accèsPhp Curl renvoie les données sur la machine locale, mais bool faux sur le serveur

Mais l'url lorsqu'il est exécuté à partir du navigateur et un script php machine locale retourne vraies valeurs de données. Cependant, quand je lance le même script de serveur, il échoue et montre bool (faux)

l'url

$token_url = "https://graph.facebook.com/oauth/access_token?" 
    . "client_id=".$config['appId']."&redirect_uri=" . urlencode($config['callback_url']) 
    . "&client_secret=".$config['secret']."&code=" . $_GET['code']; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $token_url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_POST, 0); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
    $response = curl_exec ($ch); 

    var_dump($response); 

Autres urls travaillent sur le serveur.

Quel est le problème ici?

+0

Pouvez-vous obtenir d'autres pages Web en utilisant cURL? Il se peut que Facebook soit bloqué sur votre hébergeur, ou cURL tous ensemble. – thepieterdc

+0

Oui, je peux obtenir d'autres pages Web – user3526204

+0

mais ... pouvez-vous obtenir d'autres URL 'https'? – YvesLeBorg

Répondre

4

Vous devriez vérifier au curl error au lieu de regarder seulement le résultat curl_exec:

PHP 4 >= 4.0.3, PHP 5, PHP 7) curl_error — Return a string containing the last error for the current session

Essayez ceci:

if(curl_exec($ch) === false) { 
    echo 'Curl error: ' . curl_error($ch); 
} else { 
    echo 'Operation completed without any errors'; 
} 


curl_close($ch); 

MISE À JOUR

Essayez de régler ceci:

'curl' => [ CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4] 

Pour plus de détails vérifier here

+0

Je reçois une erreur Curl: Impossible de se connecter à graph.facebook.com port 443: Connexion refusée. Quelle devrait être la raison? – user3526204

+0

@ utilisateur3526204 facebook peut bloquer votre serveur ou votre serveur n'autorise pas les connexions https. C'est généralement le cas avec les webhosts gratuits pour empêcher le spam. – thepieterdc

+0

@thepieterdc oui cela semble être le problème. Je l'ai mis à jour comme une réponse – user3526204

1

Essayez de vérifier curl_error

curl_error — Return a string containing the last error for the current session

Cela peut aider à trouver ce qui était faux.

+0

secondes en retard que la réponse @lloiaconi; – jirarium

+0

Pas de soucis, je l'ai upvoted. Je reçois erreur Curl: Impossible de se connecter à graph.facebook.com port 443: Connexion refusée. Quelle serait la raison? – user3526204

+0

essayez d'ajouter 'curl_setopt ($ ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);' – jirarium

0

J'ai été amené à comprendre d'une réponse upvoted sur l'une des autres questions que mon serveur Hostinger (gratuit) ne permet pas de se connecter au Facebook SDK !!!

Je déménage vers un serveur payant!