My Twitter – Clase PHP 5 para trabajar con el API de Twitter

Escrito el 24 de August del 2007 por artux.
Categoria: Desarrollo, Programacion, Recursos.

Continuando con mi adicción a Twitter, hace un par de semanas atrás me puse a escribir My Twitter, una clase en PHP 5 para trabajar con el API de Twitter. Aprovechando cada minuto libre y escribiendo en fracciones de no más de 5 minutos pude completar la clase que cubre todos los métodos disponibles por el API.

Sin dudas parte del éxito de Twitter se debe al excelente API que ofrece a los desarrolladores. Y si ya de por sí es bastante fácil interactuar con el API de Twitter, con My Twitter se vuelve mucho más simple aun.

My Twitter

Que Necesito para usar My Twitter?.

Para ejecutar My Twitter necesitas tener un servidor con PHP 5, con CURL y SimpleXML habilitados.

Ejemplos Básicos de Uso:

  • Mostrando tus updates (User Time Line) y mostrando los updates de la gente que sigues (Following Time Line).
<?php

require_once( './my_twitter.php' );

$twitter =  new MyTwitter('TwitterUser', 'TwitterPassword');

$status = $twitter->userTimeLine(); // User Time Line

$followstatus = $twitter->followingTimeLine(); // Following Time Line

$statuscount = count($status); //Obteniendo el número de resultados

$followcount = count($followstatus); //Total de Resultados

for ( $i=0; $i < $statuscount ; $i++ )
        {

        echo "<p>". $status[$i]['text'] ."</p>";

        }

for ( $i=0; $i < $followcount ; $i++ )
        {

        echo "<p>". $followstatus[$i]['text'] ."</p>";

        }

?> 
  • Actualizando el status en Twitter
<?php

require_once( './my_twitter.php' );

$twitter =  new MyTwitter('TwitterUser', 'TwitterPassword');

//Actualizando Status, simple no?
$twitter->updateStatus('My Twitter Clase PHP 5');

//Nota: 140 caracteres máximo

?> 
  • Enviando un Mensaje Directo a alguno de tus Contactos
<?php

require_once( './my_twitter.php' );

$twitter =  new MyTwitter('TwitterUser', 'TwitterPassword');

$twitter->newMessage('screen name o ID', 'mensaje');

//Nota: mensaje 140 caracteres máximo

?> 

Donde Descargo My Twitter?.

Podes descargar My Twitter desde su espacio en el sitio PHP Classes:
My Twitter (paquetes en .zip y tar.gz). Con el paquete esta adjunto un archivo con ejemplos de todos los métodos disponibles.

Un saludo grande y si no estoy por aca, ya saben, búsquenme en http://twitter.com/artux

delicious technorati google my web yahoo
41 comments.

ceritium

Comment on September 11th, 2007.

Muchas gracias por el trabajo, creo que es una clase muy interesante al igual que la API, pero la clase te facilita el trabajo en buena medida.

Ya se me está ocurriendo una aplicación igual de inútil que Twitter.

tru3n0

Comment on December 5th, 2007.

Muy útil, gracias!!

Activania

Comment on January 31st, 2008.

No lo he probado todavía pero me parece muy interesante. Lo justo y necesario para un pequeño desarrolo. Muchas gracias.

Un saludo.

http://www.activania.es

LedStyle

Comment on April 17th, 2008.

Congratulations for the job.

Im trying tu use your lib, but having some problemas. Works great in my Apache of Macintosh. But only… in any other server that i install the script, just dont work.
It’s not returning the content, just a clear array. You can see here: http://www.tuxresources.org/twitter

The log include this msgs:
[16-Apr-2008 22:06:15] PHP Notice: Trying to get property of non-object in /home/tuxresou/public_html/twitter/my_twitter.php on line 478
[16-Apr-2008 22:06:15] PHP Notice: Trying to get property of non-object in /home/tuxresou/public_html/twitter/my_twitter.php on line 479

Same msgs for the lines: 478-489.

Any idea? Tks!

KaiToU

Comment on April 26th, 2008.

Thanx very much, I’ll try your class soon :)
BTW, I have to use google translate to read this blog :P
Keep the good work! ;)

Internet Explorer Encoding Fail « /dev/GON

Pingback on August 27th, 2008.

[...] Ayer fue un día prolífico de web-developeo, gracias a que me tope con el trabajo ya implementado (y libre), facilitandome mucho las cosas :D . Gracias a eso, podré añadirle otro toque “2.0″ a Roxyton. [...]

Matiás

Comment on September 2nd, 2008.

Me pasaron esta clase, la verdad que está muy buena y te agradezco por compartirla, pero casualmente andan todas las funciones menos la que necesito XD.

Tenés idea qué pasa con la de directMessages? sendMessages anda, pero la de DM’s no… y es rarísimo porque hasta usan la misma función para parsear y todo :s.

Saludos

gualeguaychu

Comment on February 17th, 2009.

esta re buena la nueva clase de php, la voy a probar

Danilo

Comment on February 17th, 2009.

Si yo tengo un correo de alguien como le hago para saber si ese correo está registrado en twitter mediante este API?

DAnilo

Comment on March 2nd, 2009.

Por si a alguien le interesa la solución de mi post anterior esta aca: http://memoriasgeek.blogspot.com/2009/03/api-twitter-actualizacion.html

jor3l

Comment on April 19th, 2009.

buenas amigo, estaba probando la api desde second life, tengo un problema y es que al realizar la peticion me regresa un monton de saltos (\n) y al inicio estos simbolos:  ; la verdad no entiendo de donde salen y me gustaria saber si es algun problema con la api o algun problema del servidor, en si, funciona, pero no como deberia, pienso yo..

Blunk

Comment on May 5th, 2009.

Lo estuve probando y solo me esta funcionando una funcion “$twitter->updateStatus(‘Proving My Twitter!’);”

el resto me devuelve Arrays vacios. Alguna idea? Tenemos que esperar un update?

Nukeador

Comment on May 13th, 2009.

He tenido que cambiar en my_twitter.php línea 449:

curl_setopt($ch, CURLOPT_POST, true);
por
curl_setopt($ch, CURLOPT_GET, true);

Porque parece que Twitter está rechazando las peticiones POST.

ricardo

Comment on June 24th, 2009.

NUKEADOR!! sos lo mas!! me volvi p#t!! haciendolo andar!! corregi la linea 449.. y listo!! soy feliz!! no dependo mas de lo porqueria del feed atom del search.twitter!!

Muchas gracias por compartir esto, para algunos sera simple, pero aun asi lleva tiempo… y para otros es algo muy valioso!!

Gracias!!

faemino

Comment on July 28th, 2009.

Gracias por esta clase. La he descargado desde phpclasses y hay un error en la linea 674. Pone:
if(function_exists(curl_init))
cuando debería ser:
if(function_exists(‘curl_init’))

Saludos y gracias de nuevo

faemino

Comment on July 28th, 2009.

Hola de nuevo, lo que acabo de decir en el comentario anterior, pasa en todas las llamadas a function_exists(‘curl_init’), ninguna tiene las comillas.

Saludos

developar

Comment on August 12th, 2009.

I tried to use the library but never success !

I just want to know if it is still working or not?

Regards

sitmex

Comment on October 1st, 2009.

Hay algún otro recurso para la descarga, PHPClasses me pide registro y la verdad no me emociona mucho inscribirme a OTRO sitio para descargar…

Iker

Comment on October 9th, 2009.

Hola, Tendras un ejemplo del uso de la funcione newMessage porque ne he podido hacer que mande un mensaje a otro usuario.

Muchas gracias.

Jose Criado

Comment on October 22nd, 2009.

La función newMessage requiere de un CURLOPT_POST. La solución es sencilla. Suplica la función requestToTwitter y la llamas requestToTwitter_direct, en esta nueva cambias CUELOPT_GET por CURLOPT_POST. Luego te vas a la función newMessage y sustituyes la llamada $request = $this->requestToTwitter($url); por $request = $this->requestToTwitter_direct($url);

Saludos y gracias a artux por la clase, me ahorraste mucho trabajo ;)

Ricardo

Comment on November 11th, 2009.

Una consulta, conoce alguna clase que me permita hacer un login de twiter dentro de mi pagina web, he visto algunas paginas y estoy viendo una clase en php que me permite ver si ese usuario existe, hasta ahi he llegado pero lo que quiero es q si el usuario es valido le muestro un textarea para q escriba su coemtnario y bueno la misma clase me permite enviar mensjae pero asi mismo quiero agregar un boton de cerrar sesion pero no se ocmo manejar eso con la clase que estoy usando, alguna ayuda por favor.
Gracias de antemano

Codevent

Comment on November 30th, 2009.

Para los que tienen problemas con los acentos y eñes… a la hora de mostrar los datos usar utf8_decode.

echo “”. utf8_decode($status[$i]['text']) .”";

Christopher

Comment on February 11th, 2010.

Y como crearías automáticamente una url simpificada? deberias agregar esa funcion

Christopher

Comment on February 11th, 2010.

Tenia un error con CURLOPT_GET , lo cambie por CURLOPT_HTTPGET y ahora ya no da el error, pero no me acualiza todavia

marcos huerta hernandez

Comment on March 3rd, 2010.

que tal utilizando tu CLASS no se por que no me funcionaba no se si a alguno le mostro un error o algo asi, en particular a mi no me mostraba nada asi que me adentre a el codigo de la clase y mediante la liga de twitter me di cuenta que cuando se manda un mensaje la funcion de actualizar manda el CURL_GET donde twitter dice que no se pudene hacer peticiones por GET asi que solo lo cambie a CURLOPT_POST, true y listo

Piet

Comment on April 20th, 2010.

CURLOPT_GET por CURLOPT_POST también lo puso en marcha para mi. gracias Marcos por este tip.

Piet

Comment on April 20th, 2010.

Hay un problema con el uso del CURLOPT_GET …
No se puede cambiar asi como asi. sorry. hace falta que alguien plantée una corrección que lo resuelva.

Pepe

Comment on May 6th, 2010.

Hola, está excelente la clase, la tengo jalando sin problemas, sólo una duda, necesito mostrar los últimos mensajes mios y de mis followers (mi timeline), lo consigo, pero sin usernames ni fechas, cómo las puedo obtener?

Jose Nieves

Comment on May 11th, 2010.

Hola, aparecio que ahora Twitter anuncia que luego del 30 de Junio ya solo aceptará peticiones a su API que usen OAuth. Q saben de eso. Q tanto habria q cambiar los API existentes.

jose

Comment on May 29th, 2010.

no puedo bajar la el archivo

Gustavo Pedreros

Comment on August 31st, 2010.

Hola, te escribo porque utilice tu trabjo de my_teitter y funciono super. Pero no se si fue desde ayer, creo, que twitter hiso algo, un cambio me imagino y sale un error en la linea 469 o algo por el estilo =). Te informo que también fallaron librerias similares a la tuta =), que estees bien y ojala la puedas arreglar, es un bien bastante util tu libreria, para muchos =).

carlos_vega

Comment on September 1st, 2010.

Buenas.
Yo también utilicé tu clase y funcionó perfectamente, pero desde ayer recibo un mensaje de error: “invalid username/password” sin que yo haya cambiado nada, y pudiendo acceder a mi cuenta directamente desde twitter con mis datos de siempre.
Espero que no sea nada y que puedas solucionarlo :)

Gustavo Pedreros

Comment on September 2nd, 2010.

Lo mismo que carlos_vega =o

Eusebio

Comment on September 5th, 2010.

Efectivamente se debe usar OAuth para autenticarse con Twitter. ¿Vas a actualizar el script? Sería una pena que se muriera aquí. Saludos!

carlos_vega

Comment on September 6th, 2010.

Se puede utilizar OAuth con este plugin, activándolo de alguna manera?

JUAN P

Comment on December 1st, 2010.

Its not working, only display invalid username/password, I write my username or my email and my password and it not work! sorry.

Jesica

Comment on December 23rd, 2010.

Chicos soy bastante nueva en esto y no lo termino de entender!
Como hago para tener acceso en la API? o como se hace para programar algo que interaccione con twitter?
espero sus respuestas!
Gracias

sheraz

Comment on June 18th, 2011.

i have downloaded the Mytwitter classs. when i run, it geerated the errors

“Notice: Use of undefined constant CURLOPT_GET – assumed ‘CURLOPT_GET’ in C:\wamp\www\mytwitter\my_twitter.php on line 449″;

can u tell me wthat is the problem here

aklsfdj

Comment on December 28th, 2011.

You are the best guy in the world pisha. We love you from spain

albert

Comment on February 17th, 2012.

Ola! me paso lo mismo que a Juan P, al hacer la instancia de la clasae MyTwitter, pasandole user y pass, me aparece usuario/password incorrecto. A que puede deberse???

Link Building API

Comment on July 21st, 2012.

This is a great article in many ways. I can’t express how impressed I am with your content. I appreciate your viewpoints and how you make it all so interesting.

Deja tu Comentario

Comments can contain some xhtml. Names and emails are required (emails aren't displayed), url's are optional.