2011-08-08 3 views
0

Est-il possible d'imprimer dans mes fichiers journaux la requête exacte de Facebook PHP SDK au serveur Facebook Graphs?Facebook PHP SDK pour Graph API

Quelqu'un peut-il me expliquer comment modifier la bibliothèque PHP Facebook https://github.com/facebook/php-sdk

J'ai trouvé:

/** 
* Invoke the Graph API. 
* 
* @param String $path the path (required) 
* @param String $method the http method (default 'GET') 
* @param Array $params the query/post data 
* @return the decoded response object 
* @throws FacebookApiException 
*/ 
protected function _graph($path, $method = 'GET', $params = array()) { 
if (is_array($method) && empty($params)) { 
    $params = $method; 
    $method = 'GET'; 
} 
$params['method'] = $method; // method override as we always do a POST 

$result = json_decode($this->_oauthRequest(
    $this->getUrl('graph', $path), 
    $params 
), true); 

// results are returned, errors are thrown 
if (is_array($result) && isset($result['error'])) { 
    $this->throwAPIException($result); 
} 

return $result; 
} 

Répondre

1

Vous devriez plutôt jeter un oeil à la fonction makeRequest où la demande http réelle a lieu. Puisque je ne voudrais pas jouer dans l'API, vous pouvez également étendre la classe et remplacer la méthode:

class FacebookLogger extends Facebook { 

    protected function makeRequest($url, $params, $ch=null) { 

     var_dump($url); 
     var_dump($params); 

     parent::makeRequest($url, $params, $ch); 

    } 

} 
+0

Merci beaucoup. Où devrais-je mettre ceci? dans facebook.php ou base_facebook.php ou peut-être dans mon code? – Immo

+0

créez un nouveau fichier (par exemple fb_logger.php), incluez-le (et le fb api officiel) et au lieu de 'new Facebook' écrivez' new FacebookLogger'. –

+0

Merci beaucoup. Très utile! – Immo