msnp-wiki/docs/services/abservice.md
yellows111 4bf934f857
[v0.1.4-beta.2] everything i want before msnp13
update version file, forgot this repo had one
fix mistakes and other such
add new information
finish passport (SOAP) stuff, may rename to RST later?, just mention in footnote for now

next commit WILL be msnp13 on 0.1.4 release, promise
2024-11-26 21:15:34 +00:00

107 lines
4.9 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](abservice/abfindall.md) (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](abservice/abgroupcontactadd.md) (internal name: `Contacts.Push.Contact.AddToGroup`)
* [ABGroupContactDelete](abservice/abgroupcontactdelete.md) (internal name: `Contacts.Push.Contact.DeleteFromGroup`)
* [ABGroupAdd](abservice/abgroupadd.md) (internal name: `Contacts.Push.Group`)
* [ABGroupDelete](abservice/abgroupdelete.md) (internal name: `Contacts.Push.Group.Delete`)
* [ABGroupUpdate](abservice/abgroupupdate.md) (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.
The following also applies to the [Contact Sharing Service](sharingservice.md).
## Client/Request
The following sub-headings are XML elements for the client's request.
### 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 modified contact is saved by the client.
* `MessengerPendingList`: Managing the Pending List (PL).
* `ContactMsgrAPI`: General Messenger API.
* `BlockUnblock`: Block or unblock of this user.
* `GroupSave`: When the modified group is saved by the client.
##### 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 XML-encoded [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 base64-encoded data.
The meaning of the appended data is yet to be known. It may be a 128-bit hash of some kind.
* `<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.