2012-10-27 5 views
0

J'ai des problèmes avec la fonction PHP simple file_get_contents ... Il montre NULL mais il est activé sur le serveur, donc je ne sais pas où est le problème?Graph tokens API et file_get_contents

<?php 
$url = "http://graph.facebook.com/oauth/access_token?client_id=(ID)& 
    client_secret=(PW)&grant_type=client_credentials"; 
$app_token = file_get_contents($url); 
echo $app_token; 
?> 

(ID) et (PW) sont AppId et appSecret

Merci à l'avance!

+0

si vous tapez la valeur $ url directement dans le navigateur, puis ce que vous obtenez? – GBD

+0

Je reçois le résultat avec le jeton ... Dans ce format: AppID | Token –

+0

ce que vous obtenez dans var_dump ($ app_token)? – GBD

Répondre

0

Personnellement, j'utiliser curl php et https (http://developers.facebook.com/docs/reference/api/)

HTTP au lieu de HTTPS génèrerait: { "erreur": { "message": "client_secret doit être transmis via HTTPS", "type": "OAuthException", "code": 1 }}

S'il vous plaît activer le rapport d'erreur au cours du développement. Vous pouvez obtenir: Attention: file_get_contents(): Impossible de trouver le wrapper "https" - avez-vous oublié de l'activer lors de la configuration de PHP? en /usr/local/apache2/htdocs/xxxxx/test12345.php sur la ligne 3

+0

Oui, mais je ne sais pas comment utiliser cURL :-P –

0

Utilisez besoin d'utiliser HTTPS, et vérifier ce que les emballages sont activés

Sous Windows, vous devriez voir ceci dans php.ini

extension=php_openssl.dll 

Vérifiez les emballages

<?php 
    var_dump(stream_get_wrappers()); 
?> 

qui devrait donner une sortie telle que

array(12) { 
    [0]=> 
    string(5) "https" 
    [1]=> 
    string(4) "ftps" 
    [2]=> 
    string(13) "compress.zlib" 
    [3]=> 
    string(14) "compress.bzip2" 
    [4]=> 
    string(3) "php" 
    [5]=> 
    string(4) "file" 
    [6]=> 
    string(4) "glob" 
    [7]=> 
    string(4) "data" 
    [8]=> 
    string(4) "http" 
    [9]=> 
    string(3) "ftp" 
    [10]=> 
    string(4) "phar" 
    [11]=> 
    string(3) "zip" 

HTTPS Avis est dans le tableau.

Un exemple complet de la façon d'obtenir le jeton

<?php 

    $app_id = "YOUR_APP_ID"; 
    $app_secret = "YOUR_APP_SECRET"; 
    $app_token_url = "https://graph.facebook.com/oauth/access_token?" 
     . "client_id=" . $app_id 
     . "&client_secret=" . $app_secret 
     . "&grant_type=client_credentials"; 

    $response = file_get_contents($app_token_url); 
    $params = null; 
    parse_str($response, $params); 

    echo("This app's access token is: " . $params['access_token']); 

?> 

http://developers.facebook.com/docs/howtos/login/login-as-app/