Iniciar sesión

Ver la versión completa : [Ayuda] Usar la API de Twitter con PHP



akualung
04/07/2013, 02:56
Hola. Quisiera pedir un cable a los gurús de este foro, que sois unos cuantos :) Estoy intentando seguir este tutorial, pero me he quedado atascado en un punto que ahora detallaré.


http://www.youtube.com/watch?v=Jjil5_bP7uM


http://www.youtube.com/watch?v=Pg42nx606yo

Hay dos videos más, pero yo me he quedado al final del segundo, con una cosa que no he conseguido que me funcione. He seguido el tutorial absolutamente al pie de la letra en todos los puntos: he creado la aplicación, he bajado la librería, he creado los php intentando hacerlo todo de la manera más parecida posible al video usando los mismos nombres de variables, rutas, etc cuando me ha sido posible. Para la web he usado el hosting de 260mb.org.

El caso es el siguiente. En esta linea: $twitter_temp = $twitter->getRequestToken(OAUTH_CALLBACK); la función getRequestToken me devuelve un array vacío cuando no debería ser así. Es por ese motivo que luego, esta linea: $twitter_url = $twitter->getAuthorizeURL($twitter_temp["oauth_token"]); me devuelve una url donde el parámetro 'oauth_token' del querystring está vacío. ( https://api.twitter.com/oauth/authenticate?oauth_token= ). Y ya no puedo pasar de ahí porque necesito ese parámetro para realizar la autenticación. En el ejemplo que hacen en el video, obviamente, sí que les funciona.

Lo he revisado todo mil y una veces. Los valores consumer_key y consumer_secret los he cogido con copypaste y los he revisado letra a letra así que no puede haber error en ese sentido.

¿Podría estar el problema en que la dirección url que utiliza el del vídeo para el valor oauth_callback usa https y yo estoy usando una dirección con http normal?

Yo es que llevo horas intentando encontrar el fallo y buscando información por internet y no encuentro nada.

Gracias.

josepzin
04/07/2013, 13:22
Asegúrate que el video sea actual, a veces cambian las APIs y estos tutoriales dejan de servir...

Yo también tengo ganas algún dia de estos de probar alguna libreria para conectar cob estas redes sociales.

akualung
04/07/2013, 14:34
Asegúrate que el video sea actual, a veces cambian las APIs y estos tutoriales dejan de servir...

Yo también tengo ganas algún dia de estos de probar alguna libreria para conectar cob estas redes sociales.

hola, Josepzin, merci por contestar. La fecha de subida de estos videos es de Mayo del 2013. No sé si también los habrán hecho más o menos por esa fecha o si serán más antiguos, pero a juzgar por lo que he visto en la documentación de la api del propio twitter, parece ser de la última versión, la 1.1. La librería que usa PHP para conectar es esta: https://github.com/abraham/twitteroauth Me he mirado la documentación de ahí a ver si sacaba algo en claro, pero nada. En teoría debería funcionar tal y como está (además, es que son cuatro lineas, joer). O es algo de ese hosting (es gratuito), o yo que sé.


He hecho otra prueba desde localhost con un servidor xampp pero tampoco me ha funcionado. En este caso ni siquiera me printa nada por pantalla pese a que he puesto en el código algunos printajes de debug que deberían ejecutarse sí o sí. Quizá pruebe a cambiar de hosting a ver si es cosa de que les falte algo del php o lo que sea.


PD: veo que la razón por la que en localhost ni siquiera me printa nada, es porque no tengo activado el curl y la librería de conexión a twitter lo necesita (me estaba dando un mensaje de error, pero al tener desactivada la notificación de errores en PHP, sencillamente me salía una página en blanco). Voy a ver si consigo activarla y a ver si funciona bien o si me falla en el mismo sitio que en el hosting remoto.

PD2: Ya está, he activado el curl en el xampp y ya me funciona exactamente igual que en el servidor remoto, o sea, con el mismo error XDDDD. getRequestToken me devuelve un array vacío y ahí nos quedamos.

josepzin
04/07/2013, 14:49
Si quieres enviarme el código básico/funcional de esa conexión puedo intentar probarlo a ver si a mi me funciona.

akualung
04/07/2013, 17:15
Como quieras, te lo puedo enviar en un rar. El código que te enviaré tiene un par de cosas más que le he puesto yo a modo de prueba, para ver si me funcionaba, pero son apenas unas pocas lineas. Gracias :)

PD: Te he enviado por privado el código copypasteado entre tags PHP para que sea legible (de todas formas es un código muy corto, son unas 35 lineas)

josepzin
04/07/2013, 17:28
Envía, envía: josezanni aquí una arrobita gmail.com

akualung
04/07/2013, 17:47
Bueno, te lo envío también a tu correo, siempre va mejor tenerlo todo empaquetado y que solo sea descomprimir y ya está, jeje.

ricardo1710
22/07/2013, 01:55
Buenas noches, amigos solucionaron el problema ? tengo exactamente el mismo problema, getRequestToken me devuelve una cadena vacía, no entiendo que pasa porque tengo todo bien, tengo mi propio consumer key, consumer secret, pagina web y todo lo requerido, de hecho conseguí esos mismos tutoriales en youtube antes de entrar a este foro y lo intente hacer y naaada, solucionaron el problema ?? ayuda!! :-(

josepzin
22/07/2013, 12:58
Si, solucionado fue. En otro servidor funcionó perfectísimamente!

-----Actualizado-----

Aunque ahora que lo pienso creo que la solución fue descargar la libreria directamente desde github y entonces sí funcionó

ricardo1710
29/07/2013, 05:41
amigo puedes ser un poco mas especifico con respecto al servidor ? osea te refieres a la dirección de la aplicación, o la dirección de callback, o la dirección que tiene la clase TwitterOAuth en su atributo $host ? yo imagino que te refieres a la primera (en caso de que hables del dominio), la dirección de la aplicación. O cambiaste tu dominio a otro hosting y funciono ? ... Gracias por responder!

josepzin
29/07/2013, 14:09
Olvídate lo del servidor, descarga la librería completa y modifica sólo la configuración.

ricardo1710
02/08/2013, 22:47
amigo.. la configuración de que ?? algún valor en OAuth.php ó twitteroauth.php ? o en mis datos en twitter ?.. sigo con el problema, a que configuración te refieres ? .. de antemano gracias por la ayuda!

ricardo1710
03/08/2013, 00:00
otra pregunta es, necesito un certificado SSL ? osea HTTPS ... ?

josepzin
03/08/2013, 00:14
No necesitas SSL ni HTTPS, lo que tienes que hacer es descargar el paquete completo desde aquí:

https://github.com/abraham/twitteroauth

Luego renombras el config-sample.php a config.php y pones los valores tuyos:


define('CONSUMER_KEY', 'CONSUMER_KEY_HERE');
define('CONSUMER_SECRET', 'CONSUMER_SECRET_HERE');
define('OAUTH_CALLBACK', 'http://example.com/twitteroauth/callback.php');

La KEY supongo que te la dará Twitter al crear algun tipo de servicio, eso nunca lo hice.

ricardo1710
03/08/2013, 00:48
Justo cuando me lo comentaste, ya lo estaba intentando así, y me da un nuevo error -> Could not connect to Twitter. Refresh the page or try again later. ...... Busque en google y el propio Abraham dice que o tiene que ver con el protocolo de tiempo NTP, o tiene que ver con un firewall del servidor... en algún momento te paso ese error ?? mas que error parece un mensaje de la propia red social porque en el código de abrahm no veo esas palabras

josepzin
03/08/2013, 02:37
No, yo sólo hice una prueba rápida para ver si conectaba.

Envíame tu config.php, lo pruebo desde mi servidor y te digo.

ricardo1710
06/08/2013, 19:18
josepzin puedes facilitarme algún correo para enviarte mis datos de la aplicación ? no te puedo enviar mensajes directos en el foro porque no tengo la cantidad de mensajes posteados que requiere el foro ... imagino tu si puedes enviarme un mensaje directo

josepzin
06/08/2013, 20:54
Aquí lo tienes josezanni@ "jemail" .com :P

ricardo1710
07/08/2013, 18:02
Ya te envié la información, necesito que me respondas la dirección al archivo de callback para que te pueda funcionar (supongo)

josepzin
07/08/2013, 20:33
Mensaje recibido, luego lo miro!!

-----Actualizado-----

Lo acabo de probar y funciona perfectisimamente :P
Y además a la primera prueba!

Usé las dos claves que me enviaste, asi que eso está bien. Sólo cambié la URL de callback.php para que apunte a la de mi servidor.
Te envío un ZIP con la carpeta que tengo en mi servidor, si no te funciona seguramente sea cosa de tu servidor, eso no tiene ningún secreto, el mio es un servidor compartido sin ninguna cosa especial.