Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/10/2008, 21:50
aenet
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 53
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: sacar contactos de msn

No creo que sea exactamente lo que buscas pero tal vez te sirva de algo, con esto extraes los contactos con javascript (obviamente usando el servidor del msn), y una vez que los tenes los podes enviar con ajax o algo de eso para informar a una pagina php de los contactos.

Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>MSN</title>
    <link rel="stylesheet" href="Default.css" type="text/css" />
    <script src="http://settings.messenger.live.com/api/1.0/messenger.js" 

type="text/javascript" language="javascript"></script>
    <script type="text/javascript" language="javascript">
   var _signin = null;
function scriptMain() 
{
    var privUrl = 'http://' + document.domain + '/Privacy.htm';
    var chanUrl = 'http://' + document.domain + '/Channel.htm';
               
    _signin = new Microsoft.Live.Messenger.UI.SignInControl('signinframe', privUrl, chanUrl, 

'es-ES');
    _signin.add_authenticationCompleted(Delegate.create(null, authenticationCompleted));
}
function authenticationCompleted(sender, e) 
{
   _user = new Microsoft.Live.Messenger.User(e.get_identity());
   _user.add_signInCompleted(Delegate.create(null, signInCompleted));
   _user.signIn(null);
}
function signInCompleted(sender, e) 
{
    if (e.get_resultCode() === Microsoft.Live.Messenger.SignInResultCode.success) 
    {
        _addressList = new Array(_user.get_contacts().get_count());
                           
        var enum1 = _user.get_contacts().getEnumerator();
        while (enum1.moveNext()) 
        {
          var c = enum1.get_current();
          var address = c.get_currentAddress();
          address.get_presence().add_propertyChanged(Delegate.create(null, contact_Presence_PropertyChanged));
        }
        
        _user.get_presence().add_propertyChanged(Delegate.create(null, user_Presence_PropertyChanged));
        displayUserInfo();
        displayContacts();
        
    }
_user.get_presence().add_propertyChanged(Delegate.create(null, user_Presence_PropertyChanged));
}
function contact_Presence_PropertyChanged(sender, e) 
{
   displayContacts();
}
//obtener informacion del usario
function displayUserInfo() 
{
   var userAddress = _user.get_address().get_address();
   var userDispName = _user.get_presence().get_displayName();

   document.getElementById('status').innerHTML = Enum.toString(Microsoft.Live.Messenger.PresenceStatus, _user.get_presence().get_status());
   document.getElementById('userInfo').innerHTML = userDispName + ' (' +   userAddress + ')';
   document.getElementById('personalMessage').innerHTML = _user.get_presence().get_personalMessage();
}
//actualizar estado
function user_Presence_PropertyChanged(sender, e) 
{
   displayUserInfo();
}
//obtener lista de contactos
function displayContacts() 
{
   var sb = new StringBuilder('<div>Lista de Contactos</div>');
   var enum1 = _user.get_contacts().getEnumerator();
   var index = 0;
   
   while (enum1.moveNext()) 
   {
     var c = enum1.get_current();
     var address = c.get_currentAddress();
     var status = Enum.toString(Microsoft.Live.Messenger.PresenceStatus, address.get_presence().get_status());
     
     _addressList[index] = address;     
             
     if (address.get_presence().get_displayName() != '') 
     {
       sb.append("<div><span><a href=\'javascript:createConv(" + index + ")\'>" + address.get_presence().get_displayName() + "(" + status + ")</a></span></div>");
     }
     else 
     {
       sb.append("<div><span><a href=\'javascript:createConv(" + index + ")\'>" + address.get_address() + "(" + status + ")</a></span></div>");
     }
     
     index++;
   }
   
   document.getElementById('divContacts').innerHTML = sb.toString();
}
//se pasa el usario para iniciar conversacion
function createConv(index) 
{
   var newConv = _user.get_conversations().create(_addressList[index]);
   var convId = _user.get_conversations().get_count();
   switchConv(newConv.convId); 
}

function conversation_collectionChanged(sender,e) 
{
    displayConversations();
}

function displayConversations() 
{
   convArray = new Array();
   var sb = new StringBuilder('<p><b>Conversaciones Activas: (Para ver una conversación pulsar sobre el link):</b></p>');
   var item = 0;
   var enum1 = _user.get_conversations().getEnumerator();
   
   while (enum1.moveNext()) 
   {
     var c = enum1.get_current();
     convArray.push(c + ":" + item);
     if (c.get_closed())
       continue;
     sb.append(convLink(c, item));
     sb.append("<hr />");
     item++;
   }
   
   document.getElementById('divConversations').innerHTML = sb.toString();
}
//para enviar mensajes
function sendMsg() 
{
   var txtMessage = document.getElementById('txtMessage');
   var messageText = txtMessage.value;
   var message = new Microsoft.Live.Messenger.TextMessage(messageText, null);
   
   if (_user) 
   {
     _conv.sendMessage(message, null);
   }
   
   displayMsg(message);
   txtMessage.value = '';
   txtMessage.focus();
}

function displayMsg(message) 
{
   var elMsg = message.createTextElement();
   var txtConv = document.getElementById('txtConv');
   var userName = "";
   
   if (message.get_sender().get_presence().get_displayName() != null)
     userName = message.get_sender().get_presence().get_displayName();
   else
     userName = message.get_sender().get_address();

    txtConv.appendChild(document.createTextNode(userName + ' says: '));
    txtConv.appendChild(elMsg);
    txtConv.appendChild(document.createElement('br'));
}
//muestra la conversacion seleccionada
function recvMsg(sender, e) 
 {
    var message = e.get_message();
    displayMsg(message);
    document.getElementById('msgLastRecv').innerText = 'Último mensaje recibido: ' + _conv.get_history().get_lastReceived().toString();
 }
         
 function convLink(c, item)
 {
    var roster = c.get_roster();
    var enum1 = roster.getEnumerator();
    var names = new Array();

     while (enum1.moveNext())
     {
        var dispName = enum1.get_current().get_presence().get_displayName();
        var dispEmail = enum1.get_current().get_address();
        
        if (dispName !== '') 
        {
          names.push(dispName);
        } 
        else 
        {
          names.push(dispEmail);
        } 
     }

    var sb = new StringBuilder();
    sb.append('<a href=\"javascript:switchConv(' + item + ')\">');
    if (c == _conv)
      sb.append('<b>');
      sb.append(names.join(', '));
      if (c == _conv)
        sb.append('</b>');
        sb.append('</a>');
        sb.append('&nbsp;&nbsp;');
        sb.append('<a href=\"javascript:closeConv(' + item + ')\">');
      sb.append('close</a>');
      return sb.toString();
 }

 function switchConv(id)
 {
    var c = _user.get_conversations().get_item(id);
    if (c)
    {
        if (_conv) 
        {
          _conv.remove_messageReceived(_convSink);
        }
        
        _convSink = Delegate.create(null, recvMsg);
        _conv = c;
        _conv.add_messageReceived(_convSink);
        removeChildrenFromNode('txtConv');
        
        var hist = c.get_history();
        var histEnum = hist.getEnumerator();
        while (histEnum.moveNext()) {
          displayMsg(histEnum.get_current());
        }
        document.getElementById('btnSend').disabled = false;
    }
    
    displayConversations();
    txtMessage.focus();
 }
//cierra la conversacion selecionada y borra todos los textos de la ventana de conversacion
function closeConv(id) 
{
   var c = _user.get_conversations().get_item(id);
   convArray.splice(id, 1);
   c.close();
   if (c == _conv)
   {
     removeChildrenFromNode('txtConv');
   }
   displayConversations();
   if(_user.get_conversations().get_count() == 0)
     document.getElementById('btnSend').disabled = true;
}


function removeChildrenFromNode(id)
{
   var node = document.getElementById(id);
   if(node == undefined || node == null)
     {
       return;
     }
   var len = node.childNodes.length;
   while (node.hasChildNodes())
   {
     node.removeChild(node.firstChild);
   }
}

    </script>
</head>
<body onload="scriptMain()">
    <div id="msgr"> 
        <table> 
            <tr> 
                <td><div id="signinframe"></div></td> 
            </tr> 
            <tr> 
                <td> 
                    <div> 
                        <span><b>Información del Usuario: </b></span> 
                        <span id="userInfo"></span> 
                    </div> 
                </td> 
            </tr> 
            <tr> 
                <td> 
                    <div> 
                        <span><b>Estado: </b></span> 
                        <span id="status"></span> 
                    </div> 
                </td> 
            </tr> 
            <tr> 
                <td> 
                    <div id="setPersonalMessage"> 
                        <span><b>Mensaje Personal: </b></span> 
                        <span id="personalMessage"></span> 
                    </div> 
                </td> 
            </tr> 
            <tr> 
                <td> 
                    <div id="divContacts"> 
                    </div> 
                </td> 
            </tr> 
<tr>
    <td>
        <div id="sendMessage">
            <span><b>Mensajes:</b></span>
            <p id="contactLabel"></p>
            <p id="msgLastRecv"></p>
            <div id="txtConv"></div>
            <br />
            <input id="txtMessage" type="text" /><br />
            <input onclick="sendMsg()" id="btnSend" type="submit" value="Enviar" disabled="disabled" />
        </div>
    </td>
</tr>

        </table> 
    </div> 
</body> 
__________________
mysql_query("SELECT * FROM Intenet WHERE "Una pagina de verdad" ORDER BY id ASC");