Salve, salve todos guerreiros de CPD de plantão…
Estava um pouco com preguiça enrolado, por isso a demora no post. Mas agora que aliviei a rotina intensa de séries e filmes de projetos e serviços, consegui elaborar um tuto simples para galera. Fiquei um tempo pensando sobre o que postaria e depois de muito tempo de busca no Google estudo, decidi novamente exaltar nossas mídias sociais! Não, não to falando de Orkut, que já foi tomada por criaturas no mínimo exóticas e se tornou símbolo da porcaria maravilha chamada inclusão digital, estou falando do nosso blue bird, Let’s tweet baby!
Vamos utilizar a linguagem PHP para atualizar nosso ( Vosso? Deles? ) status no Twitter. Neste primeiro POST falaremos só da forma que se atualiza, para um próximo falaremos sobre como recuperar sua timeline. Afinal, todos amamos PHP, twitter e coca-cola, certo ? Só não consegui pensar em como incluir coca-cola neste post. Até o final pensarei em algo.
Utilizaremos a lib cURL para comunicação com o twitter. O twitter oferece diversas API para as mais variadas tarefas e diversas linguagens, nesse caso utilizaremos, obviamente, PHP com a API de atualização de status. Para conhecer as demais APIs verifiquem a documentação: http://apiwiki.twitter.com/. O blue bird utiliza a arquitetura REST para implementação de seus recursos, para mais informações sobre essa arquitetura leia em http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm.
Desenvolveremos um aplicativo rápido, mas como na vida nada é all free, a API tem um limite de 150 requisições por hora, isso no caso de requisições via GET, agora em requisições que utilizam POST, como no nosso exemplo, não estão sujeitas a essa limitação. Então, caso tenha problema durante os testes, pode ser que você foi behind the limits, boy!
Para acesso utilizaremos a lib cURL do PHP, maiores informações: http://php.net/curl . Vamos ao script:
<?php
/**
*
* - Função para atualizar status do twitter, recebe usuário, senha e status
* para ser atualizado
*
* @author Frederico Estrela
* @since 2010-04-27
* @version 2010-04-27
* @access public
* @param string $username
* @param string $password
* @param string $status
*
*/
function updateStatusTwitter( $username, $password, $status )
{
// Inicializa o recurso curl e retorna o
// resource que iremos trabalhar
$ch = curl_init();
// Remove espaço de usuário e senha para autenticarmos na API
$username = trim($username);
$password = trim($password);
/*
* Aqui são removidos os espaços do início e fim da mensagem,
* codifica o texto para UTF-8
* ( formato especificado pelo Twitter )
* e codifica para caracteres válidos a serem passados na URL
*/
$status = urlencode(utf8_encode(trim($status)));
// Verifica se a mensagem passou de 140 caracteres,
// se passar remove o excesso!
$status = strlen($status) > 140 ? substr( $status, 0, 140 ) : $status;
/*
* URL de atualização do status,
* podemos definir update.(xml|json), isso
* indicará em qual formato receberemos o
* retorno de nossa atualização
*/
$host = 'http://twitter.com/statuses/update.xml?status=' . $status;
// Aqui temos definição de algumas diretivas da cURL
// A URL que iremos obter
curl_setopt($ch, CURLOPT_URL, $host);
// Incrementa o número de informações
// enviadas para a saída
curl_setopt($ch, CURLOPT_VERBOSE, 1);
// Define que a saída da requisição
// vai ser retornada em um string,
// ao invés de gerar uma saída direta
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Usuário e senha para autenticação..
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
// Versão do cabeçalho HTTP utilizado na requisição
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
// Define para utilizar método POST na requisição
curl_setopt($ch, CURLOPT_POST, 1);
// Efetua a requisição e atribui o retorno
// a variável $retorno ( No nosso caso XML )
$retorno = curl_exec($ch);
// Pegamos informações sobre requisição, inclusive
// o status do retorno HTTP
$resultadoFinal = curl_getinfo($ch);
// Finalizamos o recurso, se não gasta, né ?
curl_close($ch);
// Se o índice referente ao retorno HTTP for 200 ( Requisição OK )
if ( $resultadoFinal['http_code'] == "200" ) {
echo 'Status atualizado com sucesso <a href="http://twitter.com/'.$username.'">Verifique</a>';
} else {
echo "Erro ao atualizar status!";
}
}
// Chamada de função passando parâmetros necessários
updateStatusTwitter('fred_estrela', 'fred1704', 'Twittando pela API, ferríssimos em PHP rapaz..');
?>
Quando se atualiza o status através da URL especificada, é retornada uma XML com o resultado da atualização. Poderíamos ainda tratar esse retorno e deixar nosso script bem mais elegante.
Como podemos notar, não há segredo na utilização da API, é só saber o que chamar e de que forma. Em breve teremos o post ensinando a recuperar a timeline de cada um. Enjoy it!
Bons tweets a todos! ;D
PS.: Vc que está ai tentando logar com essa senha no meu twitter achando que a publiquei por engano, tá de sacanagem né meu jovem ?
Artigos relacionados:



![[REVIEW] Samsung Galaxy SIII](http://cpdd.com.br/wp-content/uploads/2012/05/destaqueGS3-50x50.png)
