Postar no Twitter via Php/Curl

Um cliente precisava cadastrar notícias em seu site e também automaticamente posta-la no Twitter. Para isso utilizei a API do Twitter desenvolvendo o codigo em php/curl.

Codigo para postagem:

 //url da api  
 $url="http://twitter.com/statuses/update.json";
 ?>

//mensagem  
 $status="Postando no twitter";   

//Login e senha do twitter
   $login="login_twitter";
   $senha="senha_twitter";
 
   $data = array('status' => $status);
 
   foreach($data as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
   rtrim($fields_string,'&');
 

//parametros necessarios para executar o curl corretamente
   $sessao_curl = curl_init();
   curl_setopt($sessao_curl, CURLOPT_URL, $url);
   curl_setopt($sessao_curl, CURLOPT_HEADER, 1);
   curl_setopt($sessao_curl, CURLOPT_USERPWD, $login:$senha);
   curl_setopt($sessao_curl, CURLOPT_POST, 1);
   curl_setopt($sessao_curl, CURLOPT_POSTFIELDS, $fields_string);
   curl_setopt($sessao_curl, CURLOPT_RETURNTRANSFER, 1);
 
 //executa curl
   $rr = curl_exec($sessao_curl);

//terminando curl
   curl_close($sessao_curl);

   echo "Postado com sucesso";

Pessoal o twitter mudou a forma da sua autenticação e esse script não funciona mais!
Fiz um novo post sobre o assunto:
http://www.dicastech.net/2010/11/postando-no-twitter-via-php-com-nova-autenticacao-do-twitter-oauth/

10 Comments

  1. Pedro, tudo bem! Só uma coisa, quando eu copio e colo esse teu código no meu editor ele da alguns erros, nas seguintes linhas:

    $data = array(‘status’ => $status);

    foreach($data as $key=>$value) { $fields_string .= $key.’=’.$value.’&’; }

    curl_setopt($sessao_curl, CURLOPT_USERPWD, $login:$senha);

    Tem ideia do que pode ser?

  2. Oi! Tenho um site de anúncio de produtos, quero que quando meu funcionário cadastrar um novo produto pelo sistema administrativo do meu site automaticamente seja postado no twitter que um novo produto se encontra a disposição no meu site? Tem como fazer isso Pedro? Se sim, como?

    Abs.

Leave a Reply

Seu e-mail não será publicado.


*