msnp-wiki/docs/services/abservice.md

105 lines
4.5 KiB
Markdown

# Introduction
The Address Book Service (abservice) is a SOAP (XML) Web Service.
Introduced with [MSNP8](../versions/msnp8.md).
It manages the link(s) between the E-mail Service Address Book and the Forward List (FL).
It's default HTTP URL is `http://contacts.msn.com/abservice/abservice.asmx`.
It's default HTTPS URL is `https://contacts.msn.com/abservice/abservice.asmx`.
This service requires [Passport authentication](passport14.md).
Related: [Contact Sharing Service](sharingservice.md) (for other List's members).
# Actions
*All actions listed have the prefix of
`http://www.msn.com/webservices/AddressBook/`.*
* ABFindAll (internal name: `Contacts.Pull`)
* [ABContactAdd](abservice/abcontactadd.md) (internal name: `Contacts.Push.Contact.Add`)
* [ABContactDelete](abservice/abcontactdelete.md) (internal name: `Contacts.Push.Contact.Delete`)
* [ABContactUpdate](abservice/abcontactupdate.md) (internal name: `Contacts.Push.Contact.Update`)
* ABGroupContactAdd (internal name: `Contacts.Push.Contact.AddToGroup`)
* ABGroupContactDelete (internal name: `Contacts.Push.Contact.DeleteFromGroup`)
* ABGroupAdd (internal name: `Contacts.Push.Group`)
* ABGroupDelete (internal name: `Contacts.Push.Group.Delete`)
* ABGroupUpdate (internal name: `Contacts.Push.Contact.Edit`)
## Actions that we don't know much about
* ABFind (internal name: `Contacts.FindId`)
* ABAdd (internal name: `Contacts.AddAb`)
* ABDelete (internal name: `Contacts.DeleteAb`)
* ABFindByContacts (internal name: `Contacts.Pull.Id`)
* UpdateDynamicItem (internal name: `Contacts.Push.DynamicItem.Edit`)
# Shared Templates
This is used by all Actions listed, as far as we know.
## Client/Request
The following sub-headings are XML elements for the server's response.
### soap:Envelope
This element has four attributes:
* `xmlns:soap`: Is always set to `http://schemas.xmlsoap.org/soap/envelope/`.
* `xmlns:xsi`: Is always set to `http://www.w3.org/2001/XMLSchema-instance`.
* `xmlns:xsd`: Is always set to `http://www.w3.org/2001/XMLSchema`.
* `xmlns:soapenc`: Is always set to `http://schemas.xmlsoap.org/soap/encoding/`.
#### soap:Header
This element only serves to host the `<ABApplicationHeader>` and `<ABAuthHeader>` elements.
##### ABApplicationHeader
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
This element has three children:
* `<ApplicationID>`: The GUID of the client that sent the request for this action.
* `<IsMigration>`: If this request is part of the ABCH Migration process.
If it is, set to `true`, otherwise set to `false`.
* `<PartnerScenario>`: What caused this request to happen:
* `Initial`: This is the initial request to this action.
* `Timer`: This request was done automatically on a timer.
* `ContactSave`: When the contact is updated.
* `MessengerPendingList`: Managing the Pending List (PL).
* `ContactMsgrAPI`: General Messenger API.
* `BlockUnblock`: Block or unblock of this user.
##### ABAuthHeader
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
This element has two children:
* `<ManagedGroupRequest>`: If this is a managed group request, set to `true`, otherwise set to `false`.
* `<TicketToken>` This element contains the [Passport](passport14.md) token for `contacts.msn.com`.
Added since [MSNP15](../versions/msnp15.md).
#### soap:Body
Your request element and it's children goes here.
## Server/Response
The following sub-headings are XML elements for the server's response.
### soap:Envelope
This element has three attributes:
* `xmlns:soap`: Is always set to `http://schemas.xmlsoap.org/soap/envelope/`.
* `xmlns:xsi`: Is always set to `http://www.w3.org/2001/XMLSchema-instance`.
* `xmlns:xsd`: Is always set to `http://www.w3.org/2001/XMLSchema`.
#### soap:Header
This element only serves to host the `<ServiceHeader>` element.
##### ServiceHeader
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
This element has five children:
* `<Version>`: The version of this service.
* `<CacheKey>`: The current or new address book caching key.
Usually starts with `14r2;`, then continues with some form of base64-encoded data.
* `<CacheKeyChanged>`: Did the `<CacheKey>` change? If it did, set to `true`, otherwise set to `false`.
* `<PreferredHostName>`: The domain name that this service would like to receive requests to.
* `<SessionId>`: The current session GUID.
#### soap:Body
This element contains the server's response elements and their children for the action.