Protocols/MSNP/MSNP13/Contact Updates

From NINA Wiki
Jump to navigation Jump to search
MSN Protocol Version 13


Overview

The new protocol handles almost everything through SOAP requests, including changing your nickname or a contact's nickname, or any other details. This section handles those changes.

Changing Your/A Contact's Nickname

SOAP Request

To change your nickname, you need to use this method along with PRP, if you only use PRP, your nickname will disappear the next time you sign in. A simple SOAP request to "https://contacts.msn.com/abservice/abservice.asmx" with the action "http://www.msn.com/webservices/AddressBook/ABContactUpdate" will do it:

POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABContactUpdate
Content-Type: text/xml; charset=utf-8
Cookie: MSPAuth=*Removed*;MSPProf=*Removed*
User-Agent: MSN Explorer/9.0 (MSN 8.0; TmstmpExt)
Host: omega.contacts.msn.com
Content-Length: 1105
Connection: Keep-Alive
Cache-Control: no-cache
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <soap:Header>
        <ABApplicationHeader xmlns="http://www.msn.com/webservices/AddressBook">
            <ApplicationId>CFE80F9D-180F-4399-82AB-413F33A1FA11</ApplicationId>
            <IsMigration>false</IsMigration>
            <PartnerScenario>Timer</PartnerScenario>
        </ABApplicationHeader>
        <ABAuthHeader xmlns="http://www.msn.com/webservices/AddressBook">
            <ManagedGroupRequest>false</ManagedGroupRequest>
        </ABAuthHeader>
    </soap:Header>
    <soap:Body>
        <ABContactUpdate xmlns="http://www.msn.com/webservices/AddressBook">
            <abId>00000000-0000-0000-0000-000000000000</abId>
            <contacts>
                <Contact xmlns="http://www.msn.com/webservices/AddressBook">
                    <contactInfo>
                        <contactType>Me</contactType>
                        <displayName>*Nickname Here*</displayName>
                    </contactInfo>
                    <propertiesChanged>DisplayName</propertiesChanged>
                </Contact>
            </contacts>
        </ABContactUpdate>
    </soap:Body>
</soap:Envelope>

displayName is the field where you should place your nickname or your contact's nickname. You can also change other fields but for now, I will only handle display names. contactType is Me because you're changing your own display name. The rest has been discussed before.

SOAP Reply

Here's a snippet of the reply you should get from the server.

HTTP/1.1 200 OK
Date: Fri, 08 Sep 2006 21:17:54 GMT
Server: Microsoft-IIS/6.0
P3P:CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-Powered-By: ASP.NET
X-MSNSERVER: BAYABCHWBB198
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 419
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
        <ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook" />
    </soap:Header>
    <soap:Body>
        <ABContactUpdateResponse xmlns="http://www.msn.com/webservices/AddressBook" />
    </soap:Body>
 </soap:Envelope>