Tutoriais

07 ago 2009 11h25

Twitter e Bit.ly API de forma automatizada

  • URL Curta:
Twitter e Bit.ly API de forma automatizada
Como sambem o twitter virou moda, porém não é porque virou moda que cadastrei o site, mas sim porque vi algumas utilidades no mesmo. Estas utilidades pode ser diferente pra mim e para outras pessoas, por isso não importa qual seja utilidade. Entretanto seria um problema se eu tivesse que ficar enviando de forma manual todas atualizações do site para o twitter. Por isso estudei bastante os serviços de url curta e o API do twitter que por sinal são simples e fáceis de manusear, então criei minha própria classe com suas devidas funções para integrar ao site e agora vou disponibilizar para vocês.

1 - Primeiro passo:
Obvio que é se cadastrar no twitter.
Logo após cadastre-se no bit.ly.
Dica: use o mesmo nome de usuário para o twitter e para o bit.ly

Obs: todos em inglês.

2 - Segundo passo:
Precisamos agora do nome de usuário do twitter e senha. Do bit.ly vamos precisar do nome de usuário e do APIKey. Para pegar o apikey entre na sua conta e vá em account, lá você tem a sua chave gerada, que pode ser resetada, etc. Pode também linkar suas contas do twitter.

3 - Terceiro passo:
Com as informações em mão, basta pegar essa classe abaixo e rodar, salve com um nome por exemplo: classe.twitter.php
<?
/*
Autor: ThiagoInfo
Site: http://mndti.com
Referencia 1: http://apiwiki.twitter.com
Referência 2: http://bit.ly/apidocs
Referência 3: http://davidwalsh.name/bitly-php
*/

class twitter_bit{

var $usuario = ''; // usuario do twitter e do bit
var $senha = ''; // senha do twitter
var $APIKey = ''; // apikey do bit.ly

//----------------------------------------------------------------------------------
// FUNÇÃO EM CURL, NECESSÁRIA PARA POSTAR NO TWITER E HOSTS COM URL REMOTA DISABLED
//----------------------------------------------------------------------------------
function curl_t_b($url, $tipo=0, $pst=0, $getinfo=0, $verbose=0){

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
if ($verbose == '1'){
curl_setopt($ch, CURLOPT_VERBOSE, 1);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if($this->usuario !== false && $this->senha !== false){
curl_setopt($ch, CURLOPT_USERPWD, $this->usuario.':'.$this->senha);
}
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
if ($pst == '1'){
curl_setopt ($ch, CURLOPT_POST, true);
}
$conteudo = curl_exec($ch);
if ($getinfo == '1'){
$statustw = curl_getinfo($ch);
}
curl_close($ch);
if ($tipo == '1'){
return $statustw;
} else{
return $conteudo;
}
}
//------------------------------------------------------------------------------------
// FUNÇÃO TRABALHADA ADAPTADA COM BASE EM: http://davidwalsh.name/bitly-php
// FUNÇÃO RESPONSÁVEL POR CRIAR A URL PEQUENA NO BIT.LY
//------------------------------------------------------------------------------------

function url_pequena($url_longa, $formato='xml', $historico=1, $versao='2.0.1') {
// url do API bit.ly com as variavéis
$conteudo = $this->curl_t_b('http://api.bit.ly/shorten?version='.$versao.'&longUrl='.urlencode($url_longa).'&login='.$this->usuario.'&apiKey='.$this->APIKey.'&format='.$formato.'&history='.$historico);
// se o formato escolhido for o json
if(strtolower($formato) == 'json') {
$url_p = @json_decode($conteudo,true);
// retorno a url via json
return $url_p['results'][$url_longa]['shortUrl'];
// se for por xml que é o padrão setado na função
} else {
$xml = simplexml_load_string($conteudo);
// retorno a url via xml
return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
}
}
function envia($texto, $url){
// cria a url pequena no bit.ly e retorno a url
$url_peq = $this->url_pequena($url, 'json');
// declaro a texto a enviar e a url pequena
$pst_url = "http://twitter.com/statuses/update.xml?status=".urlencode(stripslashes(urldecode($texto ." ". $url_peq)));
// envio para o twitter
$status = $this->curl_t_b($pst_url, '1', '1', '1', '1');
// retorno o status http_code
return $status["http_code"];
}

}
?>


4 - Quarto passo:
Usando a classe.
	// GERANDO NOVO TÓPICO NO TWITER
@require(ROOT_PATH."/include/classe.tw_bt.php");
$t = new twitter_bit; // instancia a classe twitter bit
$t->usuario = 'usuario do twitter e do bit'; // usuario do twitter e bit.ly
$t->senha = 'senha do twitter'; // senha do twitter
$t->APIKey = 'api key do bit'; // apikey do bit.ly

$tw = $t->envia('testando api twiter', 'http://www.mndti.com');
// CAPTURA O CÓDIGO DE RETORNO DO TWITTER E EXIBE O STATUS - ATRAVÉS DA FUNÇÃO ENVIA
if ($tw == '200'){
$tw_msg = "<br />Tópico enviado para o Twitter com Sucesso!";
} else {
$tw_msg = "<br />Não foi possível enviar o tópico para o Twitter.";
}


Lembrando que você deve adaptar o texto e a url longa ser enviada pra seu site, apenas isso, o resto nem precisa ser alterado.
Anexos e exemplo abaixo.

Referências:
http://apiwiki.twitter.com
http://bit.ly/apidocs
http://davidwalsh.name/bitly-php

© MNDTI - Tecnologia e Informação. Todos Direitos Reservados. Política de privacidade.