Automatické odesílání zpráv na Twitter

Od Února 2009 využívám Twitter, zejména pro informování o změnách na mých www a dále o změnách na klientských webech a to převážně formou bleskovek v Blogu. Z tohoto důvodu jsem potřeboval vyřešit automatické přidávání zpráv na Twitter při publikaci článku.


Automatické odesílání zpráv na Twitter Štítky:  , ,

    Od Února 2009 využívám Twitter, zejména pro informování o změnách na mých www a dále o změnách na klientských webech a to převážně formou bleskovek v Blogu.
Z tohoto důvodu jsem potřeboval vyřešit automatické přidávání zpráv na Twitter při publikaci článku.

Twitter zpřístupňuje některé své funkce prostřednictvím API (Application Programming Interface). Je tak možno implementovat funkce do svých vlastních aplikací, webových stránek apod. Ty pak s API Twitteru komunikují protokolem HTTP.
Po prostudování API, jehož popis je na stránkách twitteru k dispozici, mi jako nejjednodušší přišlo využití metody Status/update.xml.
Podstatou je odeslání textu/zprávy metodou HTTP-POST na stránky Twitteru. Před odesláním je nutno autorizovat uživatele. Odpovědí serveru je XML soubor, který obsahuje potvrzení o doručení zprávy a některé další informace (viz API).
Publikační systém blogu je napsán v PHP, je proto zcela logické implementaci metody Status/update.xml napsat rovněž v PHP. Výsledná funkce, která zapouzdřuje celý proces komunikace vypadá následovně:



function Twitter_UpdateXML($sTwitterLogin, $sTwitterPass, $sText){
  $host = 'twitter.com';
  $path = '/statuses/update.xml';
  $_nl = "\r\n";
  $timeout = 60; // 60 second timeout
  $params = 'status='.urlencode(utf8_encode($sText));
  $response = '';
  $fp = fsockopen($host, 80, $errno, $errstr, $timeout);
  if ($fp) {
    fputs($fp, 'POST '.$path.' HTTP/1.1'.$_nl);
    fputs($fp, 'Host: '.$host.$_nl);
    fputs($fp, 'Authorization: Basic '.base64_encode($sTwitterLogin.':'.$ sTwitterPass).$_nl);
    fputs($fp, 'Content-type: application/x-www-form-urlencoded'.$_nl);
    fputs($fp, 'Content-length: '.strlen($params).$_nl);
    fputs($fp, 'Connection: close'.$_nl);
    fputs($fp, $_nl);
    fputs($fp, $params.$_nl);
    fputs($fp, $_nl);
    while (!feof($fp)) {
      $response .= fgets($fp, 1024);
    }
    fclose($fp);
  }else{
    $response = “<status><text>Error:$errno - $errstr</text></status>”;
  }
  $responseParts = explode($_nl.$_nl, $response);
  return $responseParts;
}



Zdrojový kód funkce v PHP si můžete stáhnout zde : twitter_update_xml.txt
;  
Vaše názory a komentáře: 1 ;  Zobrazeno: 18188 x ;  Hodnoceno: 0 x

Hodnocení článku: 1 2 3 4 5

Vaše názory a komentáře (1)
Petr KLOSKO
#100: 18.09.2010 ; 12:21:17
Od 31.8.2010 byla zrušena metoda Basic Auth. Všechny externí aplikace musí používat metodu OAuth. Více na http://dev.twitter.com/announcements
 

Přidat komentář
Jméno
E-Mail
Zadejte osmou čísici z čísla Zadejte osmou čísici z čísla
Pokud očekáváte odpověď na Vámi vložený komentář, zadejte Váš e-mail.
Vložením komentáře souhlasíte s pravidly.