Autor Tema: Libreria XMPPHP para conectarse al chat de tuenti  (Leído 10494 veces)

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Libreria XMPPHP para conectarse al chat de tuenti
« en: 28 de Diciembre de 2009, 12:26:55 pm »
Buenas, la mayoría de las personas que viven en España conocen la famosa red social tuenti. En el tuenti hay un chat que fue añadido hace un par de meses y que usa un servidor XMPP.

En este tutorial os voy a enseñar como conectarse al chat de tuenti usando la libreria xmpphp (http://code.google.com/p/xmpphp/)
Un pequeño ejemplo:

<?php
include("xmpp.php");
$conn = new XMPPHP_XMPP(&#39;xmpp1.tuenti,com&#39;, 5222, &#39;username&#39;, &#39;password&#39;, &#39;xmpphp&#39;, &#39;tuenti.com&#39;, $printlog=False, $loglevel=LOGGING_INFO);
$conn->connect();
$conn->processUntil(&#39;session_start&#39;);
$conn->disconnect();
?>

Nos falta poner nuestro usuario y contraseña, pero el chat de tuenti usa un PLAIN METHOD para el login y por lo tanto solo debemos poner una clave que tiene la siguiente estructura:
idusuario@host?idusuario?cookietuenti
por ejemplo:
Citar
66171907@xmpp9.tuenti.com?66171907?NjYxNzE5MDc6YTdmYzdjY2Q9ZhVkYzA3ZDY5Y0QyZWFhNzJkYmQ2NDY1MTI2MTg2NjUwMA
Y todo esto codificado en base64, por lo tanto tenemos que editar la librería XMPP y en la linea 282 de XMPP.php sustituimos esto:

if ($this->password) {
	
	
	
$this->send("<auth xmlns=&#39;urn:ietf:params:xml:ns:xmpp-sasl&#39; mechanism=&#39;PLAIN&#39;>" base64_encode("\x00" $this->user "\x00" $this->password) . "</auth>");
	
	
	
} else {
                        
$this->send("<auth xmlns=&#39;urn:ietf:params:xml:ns:xmpp-sasl&#39; mechanism=&#39;ANONYMOUS&#39;/>");
	
	
	
}
	


por esto:

	
	
	
$this->log->log("Attempting Auth...");
	
	
	
$id reset(explode(&#39;:&#39;, base64_decode($this->password)));
	
	
	
$coo base64_decode(&#39;eHh4eHh4eHhAeG1wcDkudHVlbnRpLmNvbQB4eHh4eHh4eABjb29raWU&#39;);
	
	
	
$coo str_ireplace(&#39;xxxxxxxx&#39;, $id, $coo);
	
	
	
$coo str_ireplace(&#39;cookie&#39;, $cookie, $coo);
	
	
	
$coo base64_encode($coo);
	
	
	
$this->send("<auth xmlns=&#39;urn:ietf:params:xml:ns:xmpp-sasl&#39; mechanism=&#39;PLAIN&#39;>" $coo "</auth>");


Ahora para iniciar sesión en el chat necesitamos el cookie sid de tuenti.com. Para no estar buscando el cookie en las opciones de nuestro navegador podemos escribir en la barra de direcciones cuando estemos en tuenti.com: javascript:alert(document.cookie); y copiamos la cookie sid sin el punto y coma y el igual y nuestro codigo quedaria asi:

<?php
include("xmpp.php");
$conn = new XMPPHP_XMPP(&#39;xmpp1.tuenti,com&#39;, 5222, NULL, &#39;NjI5ODUwNDU6MDRiMDRmNjBlZTZmOGNhZGQxY2MxNzU3MGFmZDM2N2Y6MTI2MTk5NjU3Mg&#39;, &#39;xmpphp&#39;, &#39;tuenti.com&#39;, $printlog=False, $loglevel=LOGGING_INFO);
$conn->connect();
$conn->processUntil(&#39;session_start&#39;);
$conn->message(&#39;66171907&#39;, &#39;This is a test message!&#39;);
$conn->disconnect();
?>


Para enviar un mensaje:

$conn
->message(&#39;66171907&#39;, &#39;This is a test message!&#39;);


Mas ejemplos y descargar la libreria: http://code.google.com/p/xmpphp/
Un saludo!


Este usuario ya no lo uso, mi nuevo usuario es marco811

Comunidad PHPeros

Libreria XMPPHP para conectarse al chat de tuenti
« en: 28 de Diciembre de 2009, 12:26:55 pm »

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #1 en: 28 de Diciembre de 2009, 12:29:37 pm »
Que bueno :O un karma + :)

#Fdo. Physlet

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #2 en: 28 de Diciembre de 2009, 14:40:28 pm »
buenisimo! + karma

Desconectado broo

  • PHPer@
  • **
  • Mensajes: 56
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #3 en: 28 de Diciembre de 2009, 19:09:01 pm »
Una pregunta, como se supoone que me registro en tuenti?

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #4 en: 28 de Diciembre de 2009, 19:19:44 pm »
te tiene que invitar alguien jeje


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado broo

  • PHPer@
  • **
  • Mensajes: 56
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #5 en: 28 de Diciembre de 2009, 19:49:33 pm »
te tiene que invitar alguien jeje

O.o! quien me invita JIJI "davidgg_963@hotmail.com"

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #6 en: 28 de Diciembre de 2009, 21:42:17 pm »
Muy bueno kekoman, es muy curioso, te doy karma+! :)

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #7 en: 28 de Diciembre de 2009, 21:46:59 pm »
Segun he visto, los servidores son xmpp1.tuenti.com, talk.google.com, ¿Como se los servidores? ¿Como se "hace" uno? :S

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #8 en: 28 de Diciembre de 2009, 22:39:07 pm »
El unico problema es que hay varios servidores xmpp1.tuenti.com, xmpp2.tuenti.com, xmpp3.tuenti.com .........! Y no funcionan todos con todos los usuarios  :-[
Segun he visto, los servidores son xmpp1.tuenti.com, talk.google.com, ¿Como se los servidores? ¿Como se "hace" uno? :S
Ni idea  :D Entra en esta pagina para mas informacion http://xmpp.org/software/servers.shtml
Un saludo y gracias por las karmas!


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #9 en: 29 de Diciembre de 2009, 11:50:24 am »
pues no se podria hacer algo con un for para verificar si el usuario esta registrado en ese servidor?

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #10 en: 29 de Diciembre de 2009, 12:39:46 pm »
si! tienes razon. no lo habia pensado jeje


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #11 en: 29 de Diciembre de 2009, 14:54:46 pm »
El chat de tuenti son varios servidores (Jabber) y una librería js que actúa de Cliente Jabber.

Un inconveniente, no se ve el nombre de los usuarios conectados, se veria la ID puesto que la id es el usuario xD

De todos modos, es un buen sistema para conectarse ;)
Un Saludo, Tope >> Programador FIJO en PHPeros

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #12 en: 29 de Diciembre de 2009, 19:19:03 pm »
Un inconveniente, no se ve el nombre de los usuarios conectados, se veria la ID puesto que la id es el usuario xD
Menos mal que yo ya lo habia pensado jeje!

<?php
function get_info_user($id$type=&#39;nombre&#39;) {
$ch curl_init();
$exp explode(&#39;@xmpp&#39;, $id);
$id $exp[0];
curl_setopt($chCURLOPT_URL, &#39;http://m.tuenti.com/?m=profile&user_id=&#39;.$id);
curl_setopt ($chCURLOPT_COOKIEFILEgetcwd().&#39;/cookie.txt&#39;);
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
$html curl_exec($ch);
curl_close($ch);
switch(
$type) {
case &
#39;nombre&#39;:
$n explode(&#39;<div class="h">&#39;, $html);
$n2 reset(explode(&#39;</div>&#39;, $n[1]));
return $n2."($id)";
break;
case &
#39;img&#39;:
$img explode(&#39;id="profile_img" src="&#39;, $html);
$img2 reset(explode(&#39;" alt&#39;, $n[1]));
return $img2;
break;
}
}
?>


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado chihue

  • PHPero Master
  • ******
  • Mensajes: 1.118
  • Karma: 43
  • Sexo: Masculino
  • 8 dias
    • Ver Perfil
    • Minichat con todo incluido
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #13 en: 29 de Diciembre de 2009, 19:34:17 pm »
Quien quiera una invitacion que me mande un MP

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:Libreria XMPPHP para conectarse al chat de tuenti
« Respuesta #14 en: 19 de Abril de 2010, 16:01:03 pm »
El codigo lo he mejorado mucho y ya solo con poner tu nombre de usuario de tuenti y la contraseña vale, nisiquiera hay que complicarse buscando cual es el servidor xmpp que tuenti no asigna. Enseguida voy a crear un tema nuevo publicando el codigo mejorado.
Un saludo!