Desde hace un tiempo atrás del cual no tengo idea cuanto fue, twitter cambió su API para conectarse a sus servicios, esto causó que todo mundo tuviera que actualizar sus códigos OBLIGATORIAMENTE para poder seguir haciendo lo que venían haciendo antes.
Despues de varios intentos fallidos encontré una forma de hacer la autenticación, fue un aporte de Tijs Verkoyen.
Lo unico que no hace Tijs es decir como utilizar su clase… aquí trataré de poner de la forma más fácil como twittear con la clase de Tijs, el resto de funciones las puede mirar en su web.
1. Bajar el archivo .php de la clase, aquí.
2. Crear una aplicación de twitter, rellenando todos los datos en: http://dev.twitter.com/apps/new
3. Entramos a http://dev.twitter.com/apps e ingresamos a la aplicación que hemos creado, de aquí debemos tomar los valores de «Consumer key» y el «Consumer secret».
4. Luego de copiar/anotar los valores, vamos al menú derecho y entramos a «My Access Token», de aquí copiaremos los valores de «Access Token» y «Access Token Secret»
Ya tenemos casi listo todo 🙂 , ahora viene el código.
$twi_user = new Twitter("Consumer key","Consumer secret"); $twi_user->setOAuthToken("Access Token"); $twi_user->setOAuthTokenSecret("Access Token Secret"); $twi_user->statusesUpdate("Este es mi primer mensaje en twitter con el nuevo método de autenticación");
Eso es todo, más fácil de lo que parece
:O
Genial esto mil gracias
Hola. tengo una consulta. descargue su codigo. Todo bien, cree la aplicacion dentro de twitter tambien todo bien, ahora mi pregunta es donde coloco el codigo por ejemplo $twi_user = new Twitter(«Consumer key»,»Consumer secret»); que no me doy cuenta. Gracias
Buen rafael, a mi no me funciona el codigo me da un error
este:
Fatal error: Uncaught exception ‘TwitterException’ with message ‘Read-only application cannot POST’ in C:\AppServ\www\twitter1\twitter_api.php:543 Stack trace: #0 C:\AppServ\www\twitter1\twitter_api.php(986): Twitter->doCall(‘statuses/update…’, Array, true, ‘POST’) #1 C:\AppServ\www\twitter1\index2.php(6): Twitter->statusesUpdate(‘Este es mi prim…’) #2 {main} thrown in C:\AppServ\www\twitter1\twitter_api.php on line 543
y mi codigo es este:
setOAuthToken(«282720940-OehC57FjtA58n9IwGop41rb229PwuzjFT3ouSBmA»);
$twi_user->setOAuthTokenSecret(«7fj1846DsU2C1II1lg2SRxVQhiccjj85KJeOgsTIQ»);
$twi_user->statusesUpdate(«Este es mi primer mensaje en twitter con el nuevo método de autenticación»);
?>
Esta rellenando todos los datos al crear la aplicación? pareciera que estuvieras creando una aplicación de solo lectura en la página de twitter.
Hola Rafael! excelente post!, quisiera saber si pudieras ayudarme! estoy intentado crear una herramienta en php que me permita descargar las «menciones» a una determinada cuenta twitter, si fuese en formato txt o cualquiera exportable a Accesssería genial!
Gracias nuevamente!
excelente post, el error que marca es porque solo estas como read-only y tienes que configurar tu aplicacion en settings y cambiarle a read and write guardar y generar un nuevo token
Excelente!, stoy buscando integrar esta API, pero me aparece un error:
Fatal error: Uncaught exception ‘TwitterException’ with message ‘Could not authenticate with OAuth.’ in C:\xampp\htdocs\twitter\lib\twitter_api.php:543 Stack trace: #0 C:\xampp\htdocs\twitter\lib\twitter_api.php(986): Twitter->doCall(‘statuses/update…’, Array, true, ‘POST’) #1 C:\xampp\htdocs\twitter\index.php(7): Twitter->statusesUpdate(‘Este es mi prim…’) #2 {main} thrown in C:\xampp\htdocs\twitter\lib\twitter_api.php on line 543
Hola, muchas gracias por el post, me ha costado instalar cURL ya que tengo Debian Lenny y no hay repositorios oficiales. Pero una vez instalado me sale el siguiente error:
Warning: curl_setopt_array() [function.curl-setopt-array]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /var/www/virtual/domain.tld/htdocs/_inc/twitter_api.php on line 446
{«error»:»Could not authenticate you.»,»request»:»\/1\/statuses\/update.json»}
Revisando mi php.ini tengo safe_mode = off y lalínea de «open_basedir=» comentada con ;
Qué puede estar ocurriendo¿?
Muchas gracias!!!