# Table of contents:
# Introduction
AddMember is one of the SOAP actions the Contact Sharing Service provides.
Create and add a sharing relationship for one or more member(s) in the specified service.
In Official Client terms, this can add members to the Allow List (AL), Block List (BL)
and the Reverse List (RL) (Pending List (PL) members only).
For adding a user to the Forward List (FL), read the ABContactAdd article.
# Client/Request
The template used in this action is described on the Address Book Service main page.
# AddMemberThis element has only one attribute:
xmlns: This is always set tohttp://www.msn.com/webservices/AddressBook.
This element contains three children:
<Id>: This is always set to0.<Type>: The type of this member:Messenger: This is a Messenger contact.Profile: This is your profile.
<ForeignId>: If<Type>isProfile, this should beMyProfile, otherwise leave empty but do not convert to an empty element.
This element only contains <Membership> elements.
This element contains two children:
<MemberRole>: The type of list:Allow: The Allow List (AL).Block: The Block List (BL).Reverse: The Reverse List (RL).ProfileExpression: Your profile.
<Members>: Described below.
This element only contains <Member> elements.
This element has two attributes:
xsi:type: The type of this<Member>:PassportMemberEmailMemberPhoneMemberRoleMember: Only valid forProfileExpression.
xmlns:xsi: This is always set tohttp://www.w3.org/2001/XMLSchema-instance.
This element contains two children:
<Type>: The type of this<Member>:PassportEmailPhone
<State>: This is usually only set toAccepted, butPendingis a valid value.<Deleted>: Should this member be deleted? (Only set totrueinUpdateMember?)
This element also contains one of the following mutually exclusive children.
<PassportName>: The user handle associated with this membership.<Email>: The e-mail address associated with this membership.<PhoneNumber>: The phone number associated with this membership, in the format of the full phone number (including country code) prefixed with a+.
This element also contains the following children if the <MemberRole> is set to ProfileExpression:
<Id>: AlwaysAllow.<DefiningService>: Contains the following:<Id>: Always0.<Type>: AlwaysMessenger.<ForeignId>: Always empty content, but not an empty element.
<MaxRoleRecursionDepth>: Always0.<MaxDegreesSeparationDepth>: Always0.
# Server/Response
The template used in this action is described on the Address Book Service main page.
# AddMemberResponseThis empty element has only one attribute:
xmlns: This is always set tohttp://www.msn.com/webservices/AddressBook.
# Examples
# PassportMember to Messenger service
# Client/Request
POST /abservice/SharingService.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/AddMember
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1319
<?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>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>Timer</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<AddMember xmlns="http://www.msn.com/webservices/AddressBook">
<serviceHandle>
<Id>0</Id>
<Id>Messenger</Id>
<ForeignId></ForeignId>
</serviceHandle>
<memberships>
<Membership>
<MemberRole>Allow</MemberRole>
<Members>
<Member xsi:type="PassportMember">
<Type>Passport</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<PassportName>anotheruser@hotmail.com</PassportName>
</Member>
</Members>
</Membership>
</memberships>
</AddMember>
</soap:Body>
</soap:Envelope>
# Server/Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 719
<?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">
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<AddMemberResponse xmlns="http://www.msn.com/webservices/AddressBook" />
</soap:Body>
</soap:Envelope>
# RoleMember to Profile service
# Client/Request
POST /abservice/SharingService.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/AddMember
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1535
<?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>AAD9B99B-58E6-4F23-B975-D9EC1F9EC24A</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>RoamingLocalSyncStorage</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<AddMember xmlns="http://www.msn.com/webservices/AddressBook">
<serviceHandle>
<Id>0</Id>
<Type>Profile</Type>
<ForeignId>MyProfile</ForeignId>
</serviceHandle>
<memberships>
<Membership>
<MemberRole>ProfileExpression</MemberRole>
<Members>
<Member xsi:type="RoleMember">
<Type>Role</Type>
<State>Accepted</State>
<Id>Allow</Id>
<DefiningService>
<Id>0</Id>
<Type>Messenger</Type>
<ForeignId></ForeignId>
</DefiningService>
<MaxRoleRecursionDepth>0</MaxRoleRecursionDepth>
<MaxDegreesSeparationDepth>0</MaxDegreesSeparationDepth>
</Member>
</Members>
</Membership>
</memberships>
</AddMember>
</soap:Body>
</soap:Envelope>
# Server/Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 719
<?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">
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<AddMemberResponse xmlns="http://www.msn.com/webservices/AddressBook" />
</soap:Body>
</soap:Envelope>