Actualizar Twitter a traves de PHP y OAuth

Categorías: Tutoriales - Tags: ,

Hasta hace poco Twitter permitía la actualización de status a través de un método sencillo mandando usuario , contraseña y mensaje de una sola vez a través de una sencilla función. Hoy en día esto ya no es así y el único modo de interactuar con la API de Twitter es usando OAuth

El método antiguo:

function postToTwitter($mensaje){
 
    $host = "http://twitter.com/statuses/update.xml?status=".urlencode($mensaje);
 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $host);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_USERPWD, "Usuario:password");
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_POST, 1);
 
    $result = curl_exec($ch);
    // Look at the returned header
    $resultArray = curl_getinfo($ch);
 
    curl_close($ch);
 
    if($resultArray['http_code'] == "200"){
         $twitter_status='Tu mensaje se envio!';
    } else {
         $twitter_status="Error ";
    }
	return $twitter_status;
}

A partir de ahora tenemos que usar OAuth para que nuestros usuarios se autentifiquen de forma segura en Twitter o mejor dicho en nuestra aplicación de Twitter.
Pero que pasa cuando no necesitamos que usuarios interactuen con Twitter sino más bien lo único que queremos es actualizar nuestro propio Twitter por ejemplo con los nuevos artículos de nuestro blog. En este caso OAuth resultaría muy tedioso ya que no necesitamos autentificarnos cada vez que queremos publicar un nuevo twitter, si no más bien obtener un ACCESS_TOKEN que no expire y nos sirva para siempre.

Usar Twitter OAuth + PHP para actualizar tu status

Lo primero que necesitamos es crear una aplicación en Twitter Apps . Al crear la aplicación debemos asegurarnos de elegir Client y de dar permisos Read & Write (lectura y escritura). Los demás campos no son importantes ya que no usaremos esta aplicación con usuarios. Una vez creada la aplicación obtendremos el Consumer Key y Consumer Secret .El access token (oauth_token) lo podemos ver si hacemos click en My Access Token

Lo segundo es bajar la librería twitteroauth de Abraham y subir a tu servidor los archivos OAuth.php y twitteroauth.php


Por último en tu archivo PHP debes incluir las siguientes funciones:

require('twitteroauth.php'); //incluir la librería
define('_CONSUMER_KEY','tuConsumerKey'); //La obtenes en el paso 1
define('_CONSUMER_SECRET','tuConsumerSecret'); //La obtenes en el paso 1
define('_OAUTH_TOKEN','tuOAuthToken'); //La obtenes en el paso 1
define('_OAUTH_TOKEN_SECRET','tuOAuthTokenSecret'); //La obtenes en el paso 1
 
		$bit=tinyurl($link); //reducimos el link con la api de bit.ly
		$quedan=(140-strlen($bit))-4; // calculo los caracteres restantes que me quedan para publicar restando los puntos suspensivo
		$mensaje=substr($mensaje,0,$quedan).' ...'.$bit; // corto el mensaje en caso de que sea muy largo
 
//declaramos la función que realiza la conexión a tu aplicación de twitter
		function getConnectionWithAccessToken() {
                    $connection = new TwitterOAuth(_CONSUMER_KEY, _CONSUMER_SECRET,_OAUTH_TOKEN, _OAUTH_TOKEN_SECRET);
                   return $connection;
                }
//Realizamos la conexión
$connection = getConnectionWithAccessToken();
//Publicamos el mensaje en twitter
$twitter=$connection->post('statuses/update', array('status' =>utf8_encode($mensaje)));
 
//Función para acortar URL con bit.ly . Primero debemos registrarnos en http://bit.ly para obtener clave api y usuario
 function tinyurl($url_larga){
$tiny = "http://api.bit.ly/v3/shorten?login=TuUsuario&apiKey=tuClaveApi&format=txt&longUrl=".$url_larga;
$sesion = curl_init();
curl_setopt ( $sesion, CURLOPT_URL, $tiny );
curl_setopt ( $sesion, CURLOPT_RETURNTRANSFER, 1 );
$url_tiny = curl_exec ( $sesion );
curl_close( $sesion );
return($url_tiny);
}

Resumiendo:

  • Creamos aplicación en Twitter Apps
  • Elegimos Client como Application type y le damos permisos de Read & Write
  • Obtenemos Consumer Key , Consumer Secret , Access Token(OAuth access token) y Access Token Secret(Oauth token secret)
  • Descargamos la librería twitteroauth.php y oauth.php desde aquí y los subimos al server
  • Por último creamos el mensaje y la url corta para actualizar nuestro estado.

Espero que hayan entendido bien el tutorial porque la verdad lo hice corriendo y con la comida en el horno xD . Cualquier duda dejen sus comentarios. Saludos!!

UPDATE 1: Cometí algunos errores al escribir el código del tutorial. Estas lineas :

1
2
3
function getConnectionWithAccessToken() {
$connection = new TwitterOAuth('_CONSUMER_KEY', '_CONSUMER_SECRET',$oauth_token, $oauth_token_secret );return $connection;
                }

Hay que cambiarlas por las siguientes:

1
2
3
4
function getConnectionWithAccessToken() {
                    $connection = new TwitterOAuth(_CONSUMER_KEY, _CONSUMER_SECRET,_OAUTH_TOKEN, _OAUTH_TOKEN_SECRET);
                   return $connection;
                }

Yo ya lo corregí en el tutorial, pido mil disculpas , pero como comente en su día este post lo hice bastante apurado.

UPDATE 2: Para los que obtienen el error de [error] => Incorrect signature al usar caracteres especiales como acentos (á,é ,etc) deben realizar el siguiente cambio.

Cambiando esta linea:

1
$twitter=$connection->post('statuses/update', array('status' =>$mensaje));

Por:

1
$twitter=$connection->post('statuses/update', array('status' =>utf8_encode($mensaje)));

También cree una aplicación para mi cuenta de twitter antigua, así pueden probar que en realidad funciona y mandar un mensaje y url. La página en cuestión es http://masquewordpress.com/ejemplos/actualizar-twitter-php-oauth/

Pueden ver su mensaje en mi vieja cuenta de twitter.

O pueden seguirme en mi nueva cuenta :D

Acerca del autor

by

Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. Wordpress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.

Más Posts de Damián Logghe - Web

Sigueme:
TwitterFacebookLinkedIn

  • Juanpi

    Justo lo que andaba buscando!!!!

  • Antonio

    Saludos.
    En el ejemplo 2 dices que el _OAUTH_TOKEN y el _OAUTH_TOKEN_SECRET se "obtienen en el paso 1".

    Al registrar mi aplicación en Twitter sólo obtuve:

    Consumer key
    Consumer secret
    Request token URL
    Access token URL
    Authorize URL

    ¿Cuál es ese "paso 1" que mencionas para obtener _OAUTH_TOKEN y el _OAUTH_TOKEN_SECRET?

    [email protected]

  • http://masquewordpress.com Damian

    Al final lo pone claro Obtenemos Consumer Key , Consumer Secret , Access Token(OAuth access token) y Access Token Secret(Oauth token secret) El access token (oauth_token) lo podemos ver si hacemos click en My Access Token en la parte derecha

    • http://neoyagami.death.cl neoyagami

      no veo 'My Access Token ' en la derecha haciendo click en la aplicacion que cree en twitter por mas que la busco no aparece y esto no me deja autenticar :S

    • http://guiasuba.dyndns.org alexis

      Lo verás en esta direccion: http://dev.twitter.com/

  • freddy

    no me funciono amigo asi tal cual como esta da error. sera que lo puedes revisar. estoy nuevo nuevo en esto del oauth y tenia una aplicacion en el twitter que se autentificaba de la forma anterior y no me funciona actualmente. saludos

    • http://masquewordpress.com Damian

      A mi me funciona perfectamente. Porque no nos comentas que error te da o donde crees que falla así te ayudamos. Saludos

      • freddy

        listo amigo el error era mio. me puse a analizar el codigo y lo resolvi. ahora ya tengo funcionando mi aplicacion y hasta ahora el unico error que encuentro es que cuando trato de hacer update al estado y el mensaje tiene acentos sale:

        request] => /1/statuses/update.json
        [error] => Incorrect signature

        estoy investigando a respecto. si encuentro como resolverlo lo comento ok. gracias por el dato de verdad me ha sido de gran ayuda

        • http://masquewordpress.com Damian

          De nada Freddy si encontrás solución a tu problema dejalo en los comentarios por si a alguien más le pasa.Saludos!

        • Michael Baute

          Me sale lo mismo amigo:

          object(stdClass)#5 (2) { ["request"]=> string(23) "/1/statuses/update.json" ["error"]=> string(19) "Incorrect signature" }

          Estoy tratando de solventarlo

          • http://masquewordpress.com Damian

            Ya encontre la solución a los acentos. Lo modifique en el post central. Saludos

  • http://twitter.com/fuerzaperpetua @fuerzaperpetua

    Parse error: syntax error, unexpected '&' in /home/…..t/index.php on line 21

  • http://masquewordpress.com Damian

    El error pasó el otro día cuando actualize el artículo. El plugin que se encarga de mostrar el código convirtio > en > por lo que te estaba dando error .También me cambio los "&" por "&"
    Ya lo corregí. Ahora debería funcionar. Disculpen las molestias

  • Carlos

    Hola, yo estoy utilizando tu código (gracias), quizás un poco modificado, y de un día a otro ha dejado de funcionar sin dar error alguno. ¿A alguien más le ha pasado?

    Saludos.

  • Oscar

    Yo estoy probando el código tal cual y también me da el error stdClass Object ( [request] => /1/statuses/update.json [error] => Incorrect signature )

    • http://masquewordpress.com Damian

      Lo siento, me equivoque al copiar el código de mi web al blog. Ya esta solucionado y debería funcionar correctamente

    • matias

      me pasa exactamente lo mismo, la conexión anda pero al hacer un post me dice: [request] => /1/statuses/update.json [error] => Incorrect signature
      alguien sabe porqué?

      • http://masquewordpress.com Damian

        Probaste el tema de los acentos?

        • matias

          si, pruebo con postear solo una letra y me sale ese error.

          $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET);
          $mensage="algo";
          $post2=$connection->post('statuses/update', array('status' =>utf8_encode($mensaje)));

          • matias

            ya está, tenáa un error cuando declaraba el OAUTH_TOKEN_SECRET, había un espacio adelante que no habia visto.
            Saludos y gracias!

  • enrony

    Ayuda no veo la opción 'My Access Token", a que se debe???

    • http://masquewordpress.com Damian

      Depende de como te metas a tu aplicación twitter muestra la barra lateral o no.
      Intenta a traves de http://dev.twitter.com/apps y hace click en el nombre de tu app

  • Pingback: Como integrar Twitter @anywhere en 5 minutos | Timersys - Tutoriales, recursos web, JQuery y PHP, Wordpress , twitter y muchos recursos más

  • http://guiamarplatense.com diego

    Buenas, Ya tengo funcionando la api, ahora lo que quiero es mandar un enlace y que aparezca como status el link por ejemplo <a>Link Tendras idea si se puede hacer?

    • http://masquewordpress.com Damian

      Disculpame diego pero no me queda claro lo que queres hacer.

  • Jose Antonio Arzate

    Saludos Damian, antes de algo, quiero agradecer y felicitar por publicar este tutorial, y tambien me gustarias saber si tienes algun script para recuperar los ultimos twitts

  • Pingback: 12 Trucos para sacarle más jugo a tu Wordpress | Timersys - Tutoriales, recursos web, JQuery y PHP, Wordpress , twitter y muchos recursos más

  • http://twitter.com/heislersin @heislersin

    MISSING_ARG_URI es lo que envia

    • http://twitter.com/gasparbelandria @gasparbelandria

      hola, yo tuve el mismo problema, el codigo funciona pero el error lo tienes en la conexion con bit.ly que es el acortador de urls.

      Intenta cambiando donde dice:

      $bit=tinyurl($link);

      por: $bit = "test";

  • http://achepenet.blogspot.com maverick2029

    Como puedo saber si realizo la conexcion con exito, ya que utilizo el codigo, mando el mensaje y nada que me aparece en mi TL

    • http://masquewordpress.com Damian

      haciendo un var_dump($twitter);

      • ag297

        En donde hacemos ese var_dump($twitter);

  • ag297

    La primera vez me funcionó muy bien, pero despues del segundo mensaje espezó a mostrar el siguiente error:

    object(stdClass)#5 (2) { ["error"]=> string(20) "Invalid / used nonce" ["request"]=> string(23) "/1/statuses/update.json" }

    Alguien me podría ayudar con esto?

  • Spidertav

    que va… gracias… funciono a la perfección, también con el bit.ly gracias

  • ag297

    Hola me gustaría hacer esto mismo que publicas en tu página, pero cada vez que llegue un DM, no consigo como hacer esto. Ya que no se como interactuar con la cta de twitter.

    • http://masquewordpress.com Damian

      Estoy armando un tutorial justamente para esto que me pides, pasate en unos dias por la web. Saludos!!

      • ag297

        Gracias, por estar dispuesto a compartir tu conocimiento.

      • jhon

         Saludos! Hey aun no has encontrado forma de enviar DM al momento en que te siguen???

  • Lukas182

    Hola!, se podria hacer que se pudiera mandar el user/password de Twitter, al fichero php y que hiciera el Tweet, en la cuenta que le pasé? en vez de tener que ser en la de la aplicacion? me explico?

    Gracias

    • http://masquewordpress.com Damian

      Hola Lukas fijate que en la página de tutoriales hay uno que explica como crear una aplicación Twiiter con PHP. En esa aplicación un usuario se conecta a Twitter y si guardas las credenciales en una base de datos te serviría para no tener que hacer loguin siempre y actualizar twiiter como tu dices.
      Es lo más parecido a lo que quieres hacer.

    • http://twitter.com/gasparbelandria @gasparbelandria

      estoy buscando exactamente lo mismo, si lo consigo te aviso, si ya lo tienes por favor avisame, saludos lukas

  • anonimo

    saludos, gracias por el articulo, al probarlo en tu sistio con tu cuenta de twitter veo que funciona a la perfeccion, pero yo he implementado todo al pie de la letra segun tu articulo pero no me funciona, hay algo en tu ejemplo implementado que no este aqui publicado?

  • http://www.callepuzzle.com César

    buenas! muchas gracias por el artículo me ha servido mucho, por cierto la variable $link hay que pasarla con “http://” si no te tira error de invalid_url, lo digo porque he estado un buen rato hasta que he caído en eso jajja, para que no le pase a nadie más xD

    Y la función tinyurl te la puedes ahorrar usando file_get_contents pero en mi servidor daba error a causa de esto: http://www.encuentroalternativo.com/url-file-acce
    Un saludo!

  • http://www.coanime.net Crafter

    Amigo hay que actualizar la forma en que se publica, ya que twitter quito el soporte XML de la API… ahora solo tenemos soporte JSon según estuve leyendo… yo aun ando en la búsqueda de el script…

  • livinglasnubes

    Un poco en la la linea de este tutorial pero con un ejemplo de parsing sencillo de mensajes directos, espero que os pueda ser de utilidad: http://distritonube.com/articulo/deja-que-tu-twit

  • http://twitter.com/tinosoft @tinosoft

    Hay problemas cuando se le ponen las comillas, automáticamente se agregan los " ¿alguna forma de arreglar esto?

  • http://twitter.com/qwebsy @qwebsy

    me sale error "Fatal error: Call to a member function post() on a non-object in"
    en la linea
    $twitter=$connection->post('statuses/update', array('status' =>utf8_encode($mensaje)));

  • http://www.uthanien.com Uthanien

    Jodidamente genial

    se agrede

    saludos

  • mensajero

    cómo creo la pagina donde tengo que ingresar el mensaje?

  • Andres

    hola
    muchas gracias, anduvo todo perfecto
    gracias

  • http://twitter.com/sarsach @sarsach

    hola, la primera vez que lo utilisé, todo salió a la perfección, pero lo probé con mi cuenta, a la hora de dar de alta una nueva cuenta de twitter, hacer una nueva app y ponerle los otros datos, ya no funcionó, nisiquiera regresandole los datos de mi cuenta, ahora ni una ni otra alguien que sepa que pasa???

  • beltran

    Fatal error: Call to undefined function curl_init() in /home/vol14/zobyhost.com/zoby_4978665/guaiqueries.zobyhost.com/htdocs/twitteroauth/twitteroauth.php on line 199
    @beltranbg

  • http://scraf23.com Scraf23

    Alguien tiene idea de hacer esto? http://twitter.com/#!/AnnoyingNavi
    Actualizar cada 5 min nombrando a alguien y añadiendo un texto, si este dice una palabra clave

  • Leandro Salar

    yo tengo que hacer que en la web donde implemento la api, la persona que entra y postee, se le actualize en su usuario, este código lo hace siempre en el mio.

    como seria esa forma ? .. estuve buscando y no consigo ..

    Gracias por la ayuda !!

  • http://twitter.com/gasparbelandria @gasparbelandria

    Hola, si alguien me puede ayudar, bueno este ejemplo me funciono perfecto, solo que el twitter se genera con la cuenta con la que cree la api en twitter.

    Yo ando buscando una api, con la que con un login y password de un usuario poder simular que este envio el twitter, es para hacer un calendario programado de twitters para los gerentes de la empresa.

    Si alguien sabe de un script con el que se pueda hacer estaria muy agradecido.

    Muchas gracias, este ejemplo funiona bien, solo que tienes que configurar tu acortado bit.ly que es otra cosa, pero puedes colocar el twitt en una cariable y listo.

    Saludos,

  • rich

    Hola amigo, yo llevo desde la semana pasada tratando de twitear desde php y no he podido , ya hice todos los pasos pero no me sale , sencillamente no lo envia , no me muestra ningun error , hay alguna configuracion en el servidor que me falte??? bueno espero su respuesta , saludos

  • Elimar Torrealba

    Hola amigo yo tengo el mismo problema, no me funciona tu ejemplo.
    Creo que es con la conexion, sera que falta algo por configurar?

  • Federico

    Hola, la verdad, es q sos un capo!!!!!! estuve matando por esto y lo resolviste muy bien…..a mi me re sirvió tu ayuda….la verdad no tengo palabras para agradecerte!!!!!!

    paso mi código:

    <html>
    <head>
    <title>Agregando a twitter</title>

    <SCRIPT language="JavaScript" type="text/javascript">
    function contador (campo, cuentacampo, limite) {
    if (campo.value.length > limite) campo.value = campo.value.substring(0, limite);
    else cuentacampo.value = limite – campo.value.length;
    }
    </script>

    </head>

    <body>

    <?php
    function volver(){
    echo"
    <SCRIPT LANGUAGE = 'JavaScript'>
    <!–
    setTimeout( 'reDirect()', 0 );
    function reDirect(){

    document.location.href = 'index.php';
    }
    –>
    </SCRIPT>
    ";
    }//fin funcion volver

    if ($_POST['Enviar']){
    //<input type="text" name="url" value="http://masquewordpress.com/tutoriales/actualizar-twitter-a-traves-de-php-y-oauth/&quot; width="20">
    require('twitteroauth.php'); //incluir la librería
    define('_CONSUMER_KEY','sdfsdf'); //La obtenes en el paso 1
    define('_CONSUMER_SECRET','sdfsdf'); //La obtenes en el paso 1
    define('_OAUTH_TOKEN','sdfsdf'); //La obtenes en el paso 1
    define('_OAUTH_TOKEN_SECRET','sdfsdf'); //La obtenes en el paso 1

    $mensaje = $_POST['mensaje'];
    $link = $_POST['link'];

    //Función para acortar URL con bit.ly . Primero debemos registrarnos en http://bit.ly para obtener clave api y usuario
    function tinyurl($url_larga){
    $tiny = "http://api.bit.ly/v3/shorten?login=sdfsdf&apiKey=sdfsdf&format=txt&longUrl=&quot;.$url_larga;
    $sesion = curl_init();
    curl_setopt ( $sesion, CURLOPT_URL, $tiny );
    curl_setopt ( $sesion, CURLOPT_RETURNTRANSFER, 1 );
    $url_tiny = curl_exec ( $sesion );
    curl_close( $sesion );
    return($url_tiny);
    }//fin funcion

    //declaramos la función que realiza la conexión a tu aplicación de twitter
    function getConnectionWithAccessToken() {
    $connection = new TwitterOAuth(_CONSUMER_KEY, _CONSUMER_SECRET,_OAUTH_TOKEN, _OAUTH_TOKEN_SECRET);
    return $connection;
    }//fin funcion

    $bit=tinyurl($link); //reducimos el link con la api de bit.ly
    $quedan=(140-strlen($bit))-4; // calculo los caracteres restantes que me quedan para publicar restando los puntos suspensivo
    $mensaje=substr($mensaje,0,$quedan).' …'.$bit; // corto el mensaje en caso de que sea muy largo

    //Realizamos la conexión
    $connection = getConnectionWithAccessToken();
    //Publicamos el mensaje en twitter
    $twitter=$connection->post('statuses/update', array('status' =>utf8_encode($mensaje)));
    volver();
    }//fin si Enviar
    ?>

    <form name="form" method="post" action=''>

    <!– <input type='text' size='80' name="mensaje" wrap=physical onKeyDown="contador(this.form.mensaje,this.form.remLen2,140);" onKeyUp="contador(this.form.mensaje,this.form.remLen2,140);">–>
    <textarea name="mensaje" wrap=physical onKeyDown="contador(this.form.mensaje,this.form.remLen2,116);" onKeyUp="contador(this.form.mensaje,this.form.remLen2,116);"></textarea>
    <input type="text" name="remLen2" size="3" maxlength="3" value="116" readonly>

    <input type="text" name="link" value="http://google.com&quot; width="40">
    <input type="submit" value="Enviar" name="Enviar"></form></div>

    </body>
    </html>

    • paul

      hola federico, oiie, una pregunta.. la vdd soy SUPERnuevo en esto, pero pues quisiera preguntarte, en donde le dices a que cuenta de twitter se le actualizara el estado. espero ke me respondas.

  • Mxrck

    Todo funciona perfectamente pero esto solo me deja publicar 4 o 5 tweets y despues ya no puedo volver a publicar hasta dentro de unas 10 o 12 horas otros 4 o 5 tweets y de nuevo lo mismo acaso tweeter pone alguna limitacion con el oauth???

  • Mxrck

    Ok no, ya lo cheque bien el problema era mio al duplicar un tweet por eso no se publicaba de nuevo.

    Quiero hacerte una pregunta en tu pagina del ejemplo despues de publicar un tweet aparece informacion supongo que la obtienes con un get cual usas exactamente?? asi es como me fije del error donde salía duplicado y me gustaria saber que imprimes para poder verificar errores etc etc. gracias de antemano

  • http://masinteligente.com heislersin

    El codigo funciona perfecto
    pero quisiera saber como hago un RT
    un respondo un "twit" con este codigo
    Gracias

  • Pingback: Cómo actualizar una cuenta de Twitter mediante PHP y OAuth: aplicación para publicar en el timeline de un usuario | voragine.net

  • pepe

    Hola, muchas gracias por el articulo. ¿Funciona en un servidor pero no consigo hacerlo funcionar desde localhost? Sabrias decirme que tengo que usar como url desde twitter dev !? Muchas gracias !!

  • http://parkero.com Zabdiel Maestre

    se pueden actualizar varios timelines al mismo tiempo usando una misma aplicacion? en mi sitio quiero que el usuario vincule su cuenta de twitter y desde mi sitio pueda publicar sin ningun problema en su timeline! con este metodo he logrado publicar en mi timeline porque soy dueño de la aplicacion, pero si es un tercero? o solo se puede publicar en el timeline de la aplicacion?

    • http://twitter.com/zabdielm Zabdiel Maestre

      Por favor pueden eliminar mi comentario?

  • Ingharols
  • Gabriel

    hola Damian, gracias por la información. He logrado obtener los datos pero no veo el que más me interesa y es el email de la cuenta. Es posible obtener esto tal como se puede hacer con FB Connect? gracias de antemano por tu valiosa ayuda.

  • Puertoarial.com

    hola como obtengo 
    OAuth Consumer Key de google. Gracias.

  • Lumago

    hola, podrias colgar los archivos de http://masquewordpress.com/ejemplos/actualizar-twitter-php-oauth/ para los que somos mas novatos?
    gracias

  • Isr_isr

    Ya no funciona desde noviembre 14 que se puede hacer ahora?