Erika Focke
Sobre todas as coisas
Sobre todas as coisas
Há algum tempo desenvolvi essa classe para postar no Twitter, e estudando a API do bit.ly fiz algumas alterações na classe para encurtar as urls antes de postá-las. A url que você passar dentro da mensagem será automaticamente encurtada. Ficou bem fácil de usar, espero que ajude alguém.
Não esqueça de mudar o “twitter_login” e “twitter_password” para seus dados do twitter, e o “bitly_login” e “bitly_key” para seus dados do Bit.ly. Se não possui conta no Bit.ly, acesse esse link para cadastrar-se: http://bit.ly/account/register?rd=/account/your_api_key . Você poderá acompanhar as estatísticas de cliques e popularidade dos links encurtados por você, é bem legal.
TwitMsg.php
<?php
class TwitMsg {
var $msg;
static $username = "twitter_login";
static $password = "twitter_password";
function __construct($msg)
{
$this->msg = utf8_encode($msg);
}
function sendMsg()
{
$username = self::$username;
$password = self::$password;
$pos = strpos($this->msg,"http://");
if ($pos !== false)
{
$aux = substr($this->msg,$pos);
$split = explode(" ",$aux);
$theUrl = $split[0];
$small = $this->getSmallLink($theUrl);
$this->msg= str_replace($theUrl,$small,$this->msg);
}
$message = urlencode($this->msg);
$message = substr($message,0,140);
$url = 'http://twitter.com/statuses/update.xml';
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
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, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer)) {
return 0;
} else {
return 1;
}
}
//bit.ly
function getSmallLink($longurl)
{
$login = "bitly_login";
$apiKey = "bitly_key";
$url = "http://api.bit.ly/shorten?version=2.0.1&longUrl=$longurl&login=$login&apiKey=$apiKey&format=json&history=1";
$result = file_get_contents($url);
$obj = json_decode($result, true);
return $obj ["results"] ["$longurl"] ["shortUrl"];
}
}
?>
Para usar, é bem fácil:
<?php
include_once("TwitMsg.php");
$message = "Classe para postar no Twitter com encurtador de URL automático do bit.ly: http://www.erikafocke.com.br/php/classe-php-para-postar-no-twitter-com-encurtador-de-url/ por @erikaheidi";
$t = new TwitMsg($message);
if($t->sendMsg())
echo "Mensagem postada com sucesso no twitter.";
else
echo "Ocorreu um erro. Verifique se o login e senha do twitter estão corretos.";
?>
Pronto! Ao executar, a mensagem será postada no seu twitter, porém o link será automaticamente encurtado e você poderá acessar as suas estatísticas na sua conta do Bit.ly.
January 31, 2010 - 9:51 pm
Muito bom Érika, simples de usar demais