Twitter: autenticazione alle API v1.1 tramite PHP e recupero dati JSON

Entro Marzo 2013 le istanze che si interfacciano alle API di Twitter senza autenticazione OAuth saranno bloccate. Twitter sta infatti spingendo verso l’adozione delle API versione 1.1. Vediamo dunque come utilizzare le nuove API 1.1 per visualizzare un elenco degli ultimi tweet presenti sul nostro profilo.Twitter

Come prima cosa servirà creare una applicazione dal sito per sviluppatori. Riceverete a questo punto le chiavi OAuth (pubblica, privata) e i token di accesso (pubblico, privato).

La prima parte del codice riguarda appunto l’autenticazione ai sistemi di Twitter, dovrete inserire i codici appena ricevuti e salvare il file come twitter_auth.php o qualcosa di simile. Modificare anche il valore del parametro ‘count’ con il numero di tweet che vorrete recuperare (ricordatevi di modificarlo sia nell’array di $oauth, sia in CURLOPT_URL).

A questo punto la parte relativa all’autenticazione è terminata.

Ora dobbiamo recuperare i dati ricevuti dalla risposta in formato JSON (notare il richiamo al file creato in precedenza):

Oltre a visualizzare il testo dei tweet ho inserito in basso quattro link rispettivamente per visualizzare il tweet sul sito ufficiale, rispondere, ritweettare o aggiungerlo ai preferiti.

Non vi resta che giocare con i CSS per abbellire il risultato!

9 thoughts on “Twitter: autenticazione alle API v1.1 tramite PHP e recupero dati JSON

  1. Ciao,
    ottimo esempio, probabilemnte devo installate/attivare qualcosa sul mio server,
    ma restitutisce un errore:

    “PHP Notice: Use of undefined constant CURLOPT_HTTPHEADER – assumed ‘CURLOPT_HTTPHEADER’ in D:\webserver\twitter\twitter_auth.php on line 48 PHP Notice: Use of undefined constant CURLOPT_HEADER – assumed ‘CURLOPT_HEADER’ in D:\webserver\twitter\twitter_auth.php on line 49 PHP Notice: Use of undefined constant CURLOPT_URL – assumed ‘CURLOPT_URL’ in D:\webserver\twitter\twitter_auth.php on line 50 PHP Notice: Use of undefined constant CURLOPT_RETURNTRANSFER – assumed ‘CURLOPT_RETURNTRANSFER’ in D:\webserver\twitter\twitter_auth.php on line 51 PHP Notice: Use of undefined constant CURLOPT_SSL_VERIFYPEER – assumed ‘CURLOPT_SSL_VERIFYPEER’ in D:\webserver\twitter\twitter_auth.php on line 52 PHP Fatal error: Call to undefined function curl_init() in D:\webserver\twitter\twitter_auth.php on line 56 ”

    mi dai una mano a capire cosa fare ?

    Grazie,
    andrea

    • Ciao,
      risolto il problema del CURL, andava abilitato nel php.ini :]

      Ora ho un altro problema, restituisce una pagina bianca.
      Dovesi specifica l’utente di twitter di cui vogliamo ritrovare i tweet ?

      Grazie ancora

      • Ciao, se ti riferisci al mio esempio, ho bisogno trovare tutti i tweet di chiunque che abbiano un determinato hashtag.
        Fino alla versione precedente della api era molto facile…

    • Ciao! Scusa il ritardo mostruoso. Probabilmente non hai installato cURL.. Dovresti riuscire a vedere se ce l’hai con phpinfo();. Fammi sapere.

  2. Buonasera ho corretto le librerie con quelle nuove per la connessione per seguire utenti, ma non mi funziona dandomi questo messaggio: Warning: array_map() [function.array-map]: The first argument, ‘self::add_quotes’, should be either NULL or a valid callback in/web/htdocs/www.maweb.it/home/twitter_api.php on line 46

    Warning: http_build_query() [function.http-build-query]: Parameter 1 expected to be Array or Object. Incorrect value given in/web/htdocs/www.maweb.it/home/twitter_api.php on line 48
    Ho chiamato il provider e dicono che non è colpa loro, ho chiesto a chi ha fatto la modifica e dice che il suo codice funziona, ma io non so più come fare!

    • Ciao! Scusa il ritardo. Potresti postare il tuo codice? Così vediamo di trovare il problema! Ciao

Leave a Reply

Your email address will not be published. Required fields are marked *