2013-09-02 12 views
7

Sto provando a effettuare una chiamata all'API di Twitter.L'API di Twitter restituisce NULL su XAMPP

In breve il mio problema è lo stesso descritto come here. Effettuando la mia chiamata ottengo NULL su un var_dump() del risultato.

Tuttavia

cURL funziona bene, ho incluso la versione più recente del twitter-api-php sceneggiatura e tutti i gettoni, le chiavi e segreti siano corretti.

Sto lavorando a un'installazione XAMPP locale. Questo causa il problema? Ma sembra funzionare per altre persone. Php è configurato male nel mio caso? O mi mancava semplicemente un punto e virgola (che dubito perché non ho errori)?

Ecco il mio codice:

ini_set('display_errors', true); 
require_once('.\libs\TwitterAPIExchange.php'); 

$settings = array(
    'oauth_access_token' => '############', 
    'oauth_access_token_secret' => '############', 
    'consumer_key' => '########', 
    'consumer_secret' => '###########' 
); 

$url = 'https://api.twitter.com/1.1/statuses/user_timeline.json'; 

$requestMethod = "GET"; 

$getfield = '?screen_name=J7mbo'; 

$twitter = new TwitterAPIExchange($settings); 
$response = $twitter->setGetfield($getfield) 
        ->buildOauth($url, $requestMethod) 
        ->performRequest(); 

var_dump(json_decode($response)); 
+1

** Hai cURL abilitato correttamente in XAMPP? ** - Il tuo 'phpinfo()' mostra questo per essere il caso? – Jimbo

+0

Per quanto posso vedere, dice: 'supporto cURL \t abilitato' in' phpinfo() ' –

+0

Potresti scrivere un semplice script di test cURL per assicurarti che funzioni come previsto? Le persone che hanno avuto problemi con questo aspetto sembravano aver impostato erroneamente CURL, quindi cerchiamo di escludere il 100% prima di continuare. – Jimbo

risposta

21

come Jimbo ha sottolineato nei commenti di cui sopra, la soluzione può essere trovata here

Secondo l'articolo, la distribuzione di Windows di PHP non arriva con un pacchetto aggiornato dei certificati radice della CA. Tuttavia, il pacchetto può essere scaricato here. L'ho messo sotto C:\xampp\php\cacert.pem.

Il secondo passaggio consiste nell'aggiungere curl.cainfo=c:\xampp\php\cacert.pem alla fine del file php.ini. Cambia il percorso della cartella in cui hai salvato il file .pem.

Riavvia Apache e ora il problema dovrebbe essere risolto!

Grazie!

+4

Questo è ciò che rende StackOverflow migliore di qualsiasi bacheca, spero che la mia nuova risposta sia ok! Grazie –

+0

Andre - dovresti contrassegnarlo come una "risposta corretta" barrandola a sinistra! – Jimbo

Problemi correlati