Attention ! Etes vous sûrs d'avoir une bonne assurance emprunteur pour votre crédit immobilier ?


août 24

RSS To Twitter

Tag: Codingnoreply @ 11:38

Non ce blog n’est pas mort ! Pour preuve, je vous livre un petit bout de code tout simple, une fois encore pour un script PHP / Twitter.

N’ayant pas trouvé de service gratuit satisfaisant pour transformer un flux RSS en Tweets, j’ai dû ressortir l’éditeur de PHP !

Le script suivant est à appeler en ligne de commande par exemple. Vous pouvez le placer dans le cron pour qu’il soit appelé automatiquement de façon régulière.

Pensez juste à bien renseigner les deux constantes LOGIN et PASSWORD avec vos informations de compte Twitter et à mettre l’URL d’un flux RSS dans la variable $feedUrl. Et veillez également à ce que le script ait bien les droit d’écriture dans le répertoire ou au moins sur le fichier last_xxx.txt ou xxx est le login twitter (sinon c’est le flood assuré de votre compte twitter).

Petits avantages de ce script :

  • Utilisation de is.gd comme service de racourcisseur d’URL.
  • Optimisation de la taille du Tweet pour qu’il puisse être RT facilement !

Voilà le bestiau :

<?php

/* start config */

define(‘LOGIN’,‘login_twitter’);
define(‘PASSWORD’,‘password_twitter’);

$feedUrl = ‘url_du_flux_a_promotionner’;

/* end config */

ini_set(‘user_agent’,‘Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)’);

$lastFile = sprintf(‘last_%s.txt’,LOGIN);
$maxLength = 138strlen(sprintf(‘RT @%s:’,LOGIN));

function send_twitter($message= »,$apiUrl=‘http://twitter.com/statuses/update.xml’) {
        $curl_handle = curl_init();
        curl_setopt($curl_handle, CURLOPT_URL, "$apiUrl");
        curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl_handle, CURLOPT_POST, 1);
        curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message");
        curl_setopt($curl_handle, CURLOPT_USERPWD, sprintf(‘%s:%s’,LOGIN,PASSWORD));
        $buffer = curl_exec($curl_handle);
        curl_close($curl_handle);
        if(strpos($buffer,‘<error>’) !== false) {
                return false;
        }
        else {
                return true;
        }
}

if ($x = simplexml_load_file($feedUrl)) {       
        $last = @file_get_contents($lastFile);
        $update = false;

        foreach ($x->channel->item as $v) {
                $title = (string)$v->title;
                $url = (string)$v->link;
                $msg = "$title $url";
               
                if ($msg == $last) exit;
               
                $url = $url ? file_get_contents(‘http://is.gd/api.php?longurl=’ . $url) :  »;
                               
                $N = max(0,$maxLengthstrlen($url));
               
                if ($N) {
                        $title = substr($title,0,$N);
                        $tweet = trim("$title $url");
                       
                        if ($tweet && send_twitter($tweet)) {
                                if (!$update) file_put_contents($lastFile,$msg);
                                $update = true;
                                sleep(1);
                        }              
                }
        }
}
?>

One Response à “RSS To Twitter”

  1. El Cherubin dit :

    Je teste de suite, exactement ce dont j’avais besoin :)

Poster un commentaire