2011 <!-- 9 -->
Acceder a Streaming API de PHP
Para aquellos que necesiten realizar aplicaciones sobre Twitter que tiren de la Streaming API, por ejemplo monitorear o que se dice de una marca, les va a venir muy bien este código:
set_time_limit(0);
$query_data = array('track' => 'lo que quieres buscar');
$user = 'username'; // replace with your account
$pass = 'password'; // replace with your account
$fp = fsockopen("stream.twitter.com", 80, $errno, $errstr, 30);
if(!$fp){
print "$errstr ($errno)\n";
} else {
$request = "GET /1/statuses/filter.json?" . http_build_query($query_data) . " HTTP/1.1\r\n";
$request .= "Host: stream.twitter.com\r\n";
$request .= "Authorization: Basic " . base64_encode($user . ':' . $pass) . "\r\n\r\n";
fwrite($fp, $request);
while(!feof($fp)){
$json = fgets($fp);
$data = json_decode($json, true);
if($data){
//
// Do something with the data!
//
}
}
fclose($fp);
}
El parámetro track se puede cambiar por follow (usando IDs numéricos) para saber que dice algún usuario y que dicen los que le mencionan o retuitean.
Vía / AF-Design
September 29, 2011 a las 3:25 pm
Buen articulo, pero es necesario ingresar un user y pass? no puede trabajar sin login? que pasa en ese caso con el control de Oauth que pide twitter para las cuentas?
September 29, 2011 a las 5:01 pm
No necesita OAuth porque tira de Basic Auth, yo también creía que iba a ser necesario OAuth, pero lo he probado y funciona perfectamente.
Saludos
September 30, 2011 a las 12:26 am
Se puede también partir de: Phirehose (https://github.com/fennb/phirehose)
September 30, 2011 a las 12:46 am
Gracias por el enlace, Nigeon
September 30, 2011 a las 12:28 pm
A mi no me funciona, metas el usuario que metas siempre entra en el bucle while y nunca entra en el bloque del if.
September 30, 2011 a las 1:10 pm
cmaciasg, que es lo que pones sustituyendo a ‘lo que quieres buscar’ ? usa “facebook” o un TT de Twitter
Saludos
October 3, 2011 a las 11:38 am
$query_data = array(‘track’ => ‘facebook’);
Lo he hecho y sigue igual, no me arroja nada. Pero ya te decía, que se comporta igual poniendo el username y la password que quieras.
October 3, 2011 a las 11:42 am
El problema es que fgets($fp); no me devuelve nada.
October 3, 2011 a las 12:59 pm
Pregunta tonta, pero has usado un usuario y contraseña válidos?
Has mirado si te devuelve algo en $errstr?
Saludos