BigThink

Plugin WordPress per pubblicare su Twitter i nostri post

WordPress to Twitter

Terza ed ultima parte della miniserie realizzata da Camu: dopo averci introdotti agli Hook di WordPress e alle API di Twitter, è giunto il momento di mescolare bene gli ingredienti.

Ora che abbiamo a disposizione tutti gli strumenti, non rimane che metterli insieme per realizzare il plugin che scrive automaticamente sul canale Twitter.

Vorrei precisare che quanto sto per dire vale per qualsiasi altro servizio che metta a disposizione le proprie API: Facebook, Google, Technorati e FriendFeed sono solo alcuni esempi. E non è detto che si debba usare un servizio soltanto alla volta: il plugin che ho realizzato per il mio blog, ad esempio, fa anche da “passacarte”: legge una fonte RSS definita da me (ad esempio Il Corriere della Sera) e posta i titoli delle notizie sul mio canale Twitter, al verificarsi di certe condizioni.

Altri hanno scritto plugin che, usando lo stesso meccanismo, prendono i commenti su FriendFeed e li ripubblicano sul blog, per tenere intatto il filo della discussione. Per non complicare il codice, ho omesso questa parte nel seguito.

A differenza dell’esempio visto la scorsa settimana, il plugin che segue usa la libreria cURL di PHP per interagire con Twitter: alcune funzioni richiedono infatti l’autenticazione per motivi di sicurezza (solo io devo essere in grado di postare sul mio canale Twitter, ti pare?).

Ma, tecnicismi a parte, il concetto di fondo non cambia: si fa una richiesta (nello specifico “aggiungi un nuovo messaggio al mio canale”) e si riceve una risposta in XML (che sarà del tipo “ok, fatto” oppure “huston, abbiamo un problema” a seconda dei casi):

function faiRichiesta($method, $url, $vars, $username, $password) {
   if (!function_exists(curl_init)) {
       return 1; // Errore 1: Curl non installato
    }

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    if (!empty($username) && !empty($password))
        curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);

    if ($method == 'POST') {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
    }

    $data = curl_exec($ch);
    $response = curl_getinfo($ch);

    if ( (intval($response['http_code']) == 200) && !empty($data) ) {
        curl_close($ch);
        return $data;
    }
    return $response['http_code']; // Qualcosa è andato storto nella richiesta    
}

Scriviamo quindi il plugin che, quando scrivo un nuovo post sul blog, pubblica il titolo e la URL su Twitter.

Il sorgente in PHP puoi scaricarlo qui di seguito: è un codice rudimentale, che puoi decidere di provare sul tuo blog. Ma ricorda di inserire la tua login e password di Twitter, altrimenti non funziona.

Twitter Update  Twitter Update (1,8 KiB) - scaricato 1.013 volte

Leggi anche...

WordPress: escludere dalla home i post di una certa categoria

WordPress: escludere dalla home i post di una certa categoria

Qualche mese fa avevo scritto una pillola per WordPress che è stata piuttosto apprezzata: Come creare una sezione di post in Evidenza, nella quale spiegavo come creare una sezione a parte, con i post che si vogliono mettere in evidenza. Ieri, Teodoro Di Stasi mi ha domandato: Come potrei fare in modo che gli articoli ...
Usare l'editor di WordPress all'interno dei nostri plugin

Usare l’editor di WordPress all’interno dei nostri plugin

Dopo lunghe ricerche e moltissimi test, ho finalmente trovato il modo di inserire l'editor di WordPress all'interno dei plugin creati da me. Immaginate di sviluppare un plugin WordPress, nelle cui opzioni avete una textarea dove l'utente deve poter scrivere del testo formattato. Come prima idea potrebbe venirvi in mente di utilizzare TinyMCE ed incorporare ...
6 Plugin WordPress per la gestione di Ruoli e Permessi

6 Plugin WordPress per la gestione di Ruoli e Permessi

Se utilizzi WordPress come CMS per i tuoi siti o se hai un blog multiautore, avrai prima o poi la necessità di limitare i permessi dei vari autori. Fare in modo che possano scrivere solo in una certa categoria, evitare che modifichino i tuoi articoli, creare aree riservate... La gestione dei Ruoli è importante ...
Una barra con OKNOtizie, Facebook e Twitter per WordPress

Una barra con OKNOtizie, Facebook e Twitter per WordPress

In molti mi hanno chiesto come ho fatto a mettere sotto ogni articolo la barra di OKNotizie, con il pulsante di Facebook e quello di Twitter. E' molto utile perchè permette di avere sott'occhio i tre network principali per la diffusione dei nostri post. Ho deciso allora di scrivere questo articolo, così che tutti ...
WordPress: Aggiungere un feed RSS personalizzato

WordPress: Aggiungere un feed RSS personalizzato

Ci sono tantissime ragioni per cui si potrebbe voler aggiungere un feed RSS secondario: dare la possibilità ai lettori di iscriversi sia al feed completo che a quello breve; impostare un feed rss personalizzato per gli aggregatori di blog; creare una newsletter con FeedBurner; mostrare il feed in un formato particolare... Nei prossimi giorni vedremo più nel dettaglio ...

13 Commenti

  1. giuseppe

    ciao sono alla ricerca di un plugin che pubblica direttamente gli articoli su twitter, il tuo mi sembra che lo faccia, io ho inserito username e la password di twtitter e ho cambiato il http://www.duechiacchiere con il mio sito (non so se lo dovevo fare), ma poi è arrivato il problema il plugin dove lo devo inserire per funzionare?

    nella sezione header, index, page non sapendolo ti cheido lumi, grazie in anticipo, ciao.

    26 novembre 2010, 20:43
  2. Ciao, ho provato a scaricare il PlugIn ma non va: l’idea è comunque molto buona e molto utile!!

    26 maggio 2010, 19:17
  3. Adoro le immagini che riesci ad associare ai post ;)

    28 settembre 2009, 13:41
    • Ehehe, ci metto ore per cercarle o per comporle (come questa o quella del “gancio”)

      28 settembre 2009, 15:18

9 Citazioni