[v0.1.4-beta.1] finally ABFindAll & FindMembership

fix all XML example responses missing charset
Change "Contact ID" with "Common ID", for now. Really would like to know which one is canonical.

Added 3 reference constants.

Linked things and fixed minor mistakes.

Next is probably Passport SOAP, not sure.
This commit is contained in:
Declan B. 2024-11-20 21:19:42 +00:00
parent 0cfc511907
commit a9bfe9e6d6
Signed by: yellows111
SSH key fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
23 changed files with 683 additions and 34 deletions

View file

@ -126,5 +126,5 @@ S: LSG Friends f60efbe7-94af-4b16-b926-e4e10878d329
Changed group IDs to group GUIDs if `ABCHMigrated: 1`.
* [MSNP13](../versions/msnp13.md): Removed [SYN](syn.md).
Use the [Address Book Service](../services/abservice.md)'s
`ABFindAll` action instead.
[`ABFindAll`](../services/abservice/abfindall.md) action instead.
* Hard-removed in November 2003, Removed outside of [SYN](syn.md), now just automatically disconnects.

View file

@ -189,6 +189,8 @@ S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056
Changed `C=` to contact GUID and changed group ID list to group GUID list with `ABCHMigrated: 1` to SYN version.
* [MSNP12](../versions/msnp12.md): Added Network IDs to [SYN](syn.md) version.
* [MSNP13](../versions/msnp13.md): Removed [SYN](syn.md).
Use the [Address Book Service](../services/abservice.md)'s
`ABFindAll` action instead.
Use both the [Address Book Service](../services/abservice.md)'s
[`ABFindAll`](../services/abservice/abfindall.md) and the
[Contact Sharing Service](../services/sharingservice.md)'s
[`FindMembership`](../services/sharingservice/findmembership.md) actions instead.
* Hard-removed in November 2003, Removed outside of [SYN](syn.md), now just automatically disconnects.

View file

@ -267,5 +267,7 @@ Server disconnects client.
With `ABCHMigrated: 1`, the List Version and Settings Version are changed to ISO 8601 timestamps.
* [MSNP12](../versions/msnp12.md): [LST](lst.md): Added support for Network IDs.
* [MSNP13](../versions/msnp13.md): Removed (automatic disconnection).
Use the [Address Book Service](../services/abservice.md)
and the [Contact Sharing Service](../services/sharingservice.md) instead.
Use both the [Address Book Service](../services/abservice.md)'s
[`ABFindAll`](../services/abservice/abfindall.md)
and the [Contact Sharing Service](../services/sharingservice.md)'s
[`FindMembership`](../services/sharingservice/findmembership.md) actions instead.

View file

@ -7,7 +7,7 @@ If you know of a key pair not on this list,
or just the Public Key associated with a client, feel free to contact me.
Format of the Public Keys (except the first `msmsgs@msnmsgr.com` one)
seems to be "PROD", then four digits, the first being a `0`, than 8 random characters.
seems to be "`PROD`", then four digits, the first being a `0`, then 8 random characters.
The four digits seem to increase by at least `1` every time a new key pair is made.
Private keys seem to have a format of 16 random characters.

View file

@ -10,7 +10,7 @@ This was expanded in [MSNP16](../versions/msnp16.md) with Extended Client Capabi
| `hexadecimal` | `decimal` | meaning |
| ------------- | ------------ | ------- |
| `0x00000001` | `1` | The user is on a mobile device. |
| `0x00000002` | `2` | The user is the MSN Desktop client, version 8 or above. |
| `0x00000002` | `2` | The user is on the MSN Desktop client, version 8 or above. |
| `0x00000004` | `4` | The user's client supports receiving Ink. (GIF) |
| `0x00000008` | `8` | The user's client supports sending Ink. (ISF) |
| `0x00000010` | `16` | The user has a webcam and is sharing the fact they have one. |

View file

@ -134,7 +134,7 @@ Contains only `ABCHInternal`. Unknown if there are other values supported.
This element is exclusive to notifications generated by the [Address Book Service](../services/abservice.md).
## CID
Contains only the Contact ID of the user associated with this notification.
Contains only the Common ID of the user associated with this notification.
This element is exclusive to notifications generated by the [Address Book Service](../services/abservice.md).
@ -155,7 +155,7 @@ This element and it's children are exclusive to notifications generated by the b
Contains the blog service's ID for the main component.
## OwnerCID
This element only contains a signed 64-bit integer for the Contact ID.
This element only contains a signed 64-bit integer for the Common ID.
Added since [MSNP13](../versions/msnp13.md).
This element and it's children are exclusive to notifications generated by the blog service.

View file

@ -78,8 +78,6 @@ More is to come soon! Hopefully!
* Meta: A good way to handle removed-mid-protocol commands like [FND](commands/fnd.md), [LSG](commands/lsg.md) and [LST](commands/lst.md)...
## We know, but isn't written
* [Contact Sharing Service](services/sharingservice.md): write about `FindMembership`
* [Address Book Service](services/abservice.md): write about `ABFindAll`
* [Messenger Config service](services/msgrconfig.md): maybe provide examples?
* [MSNP13](versions/msnp13.md): just write this page already
* [Passport SOAP](services/passportsoap.md): document this service for [MSNP12](versions/msnp12.md), [MSNP13](versions/msnp13.md) and above.

View file

@ -19,6 +19,7 @@ This refers to all the constants used on the wiki.
## Contact GUIDs
* Another User's contact GUID: `c1f9a363-4ee9-4a33-a434-b056a4c55b98`
* My contact GUID: `c867a811-089f-4c4c-a601-e983881f003a`
* My [Address Book Service](services/abservice.md) GUID: `00000000-0000-0000-0000-000000000000`
* John's (mobile-only contact) GUID: `a47e39cf-312c-4100-94a6-f2b33adf5b68`
@ -26,6 +27,8 @@ This refers to all the constants used on the wiki.
* My Passport Unique ID: `0x00000001:0x00000002`, High: `1`, Low: `2`.
* My computer's GUID: `44bfd5a4-7450-4bda-ba3a-c51b3031126d`
* Another User's computer's GUID: `0061d708-cd9b-4d56-b64b-fffaa92ff344`
* My Common ID: `4294967298`
* Another User's Common ID: `4388220788362762`
## MSNP Servers
* The Dispatch Server: `10.0.0.1:1863`

View file

@ -15,7 +15,7 @@ Related: [Contact Sharing Service](sharingservice.md) (for other List's members)
*All actions listed have the prefix of
`http://www.msn.com/webservices/AddressBook/`.*
* ABFindAll (internal name: `Contacts.Pull`)
* [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`)

View file

@ -1,8 +1,8 @@
# Introduction
`ABContactAdd` is one of the SOAP actions the [Address Book Service](../abservice.md) provides.
Adds a contact to the Forward List (FL).
For adding a contact to any other list, see the [Contact Sharing Service](../sharingservice.md).
Adds a user to the Forward List (FL).
For adding a user to any other list, read the [`AddMember`](../sharingservice/addmember.md) article.
# Client/Request
The template used in this action is described on the [Address Book Service](../abservice.md) main page.
@ -116,7 +116,7 @@ Content-Length: 1464
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Type: text/xml; charset=utf-8
Content-Length: 911
<?xml version="1.0" encoding="utf-8"?>

View file

@ -2,7 +2,7 @@
`ABContactDelete` is one of the SOAP actions the [Address Book Service](../abservice.md) provides.
Removes a contact from the Forward List (FL).
For removing a contact from any other list, see the [Contact Sharing Service](../sharingservice.md).
For removing a member from any other list, read the [`DeleteMember`](../sharingservice/deletemember.md) article.
# Client/Request
The template used in this action is described on the [Address Book Service](../abservice.md) main page.
@ -83,7 +83,7 @@ Content-Length: 1213
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Type: text/xml; charset=utf-8
Content-Length: 774
<?xml version="1.0" encoding="utf-8"?>

View file

@ -111,8 +111,8 @@ Content-Length: 1378
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 911
Content-Type: text/xml; charset=utf-8
Content-Length: 774
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope

View file

@ -0,0 +1,344 @@
# Introduction
`ABFindAll` is one of the SOAP actions the [Address Book Service](../abservice.md) provides.
Returns the full list of contacts in the Forward List (FL).
For retrieving information about other lists,
read the [`FindMembership`](../sharingservice/findmembership.md) article.
# Client/Request
The template used in this action is described on the [Address Book Service](../abservice.md) main page.
## ABFindAll
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
### abId
This element contains your [Address Book Service](../abservice.md) GUID.
### abView
Always set to `Full`.
### deltasOnly
If set to `true`, the `<lastChange>` value is compared against the server to
only provide the updates since the timestamp provided.
### lastChange
This is a ISO 8601 timestamp which denotes the last time you retrieved the
Forward List (FL), comes from the response's
`<createDate>` element inside the `<ab>` element.
# Server/Response
## ABFindAllResponse
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
This element only contains the `<ABFindAllResult>` element.
### ABFindAllResult
#### groups
This element contains any amount of `<Group>` elements.
##### Group
This element contains five children:
* `<groupId>`: The group's GUID.
* `<groupInfo>`: Described [below](#groupinfo).
* `<propertiesChanged>`: Contains a space delimited list of changed elements in `<groupInfo>`:
* `GroupName`
* `<fDeleted>`: Is this group deleted? (`true` or `false`).
* `<lastChange>`: The ISO 8601 timestamp of the time this group was last modified.
###### groupInfo
This element contains six children:
* `<annotations>`: This element contains multiple `<Annotation>` elements.
* `<groupType>`: Only known to be set to `c8529ce2-6ead-434d-881f-341e17db3ff8`.
* `<name>`: The group's name
* `<IsNotMobileVisible>`: If this is set to `true`, this group is not shown to mobile clients.
Otherwise, it is set to `false`.
* `<IsPrivate>`: If this is set to `true`, this group is private. Otherwise, it is set to `false`.
* `<IsFavorite>`: If this is set to `true`, this group is the Favorites group. Otherwise, it is set to `false`.
`<Annotation>` elements contain two children:
* `<Name>`: The key of this annotation:
* `MSN.IM.Display`: Is this group shown to the Official Client? (`1` or `0`)
* `<Value>`: The value of this annotation.
#### contacts
This element contains any amount of `<Contact>` elements.
##### Contact
This element contains x children:
* `<contactId>`: The GUID of this contact.
* `<contactInfo`: Described on it's [own page](contactinfo.md).
* `<propertiesChanged>`: Contains a space delimited list of changed elements in `<contactInfo>`:
* `DisplayName`
* `IsMessengerUser`
* `ContactFirstName`
* `ContactLastName`
* `Comment`
* `MiddleName`
* `ContactPrimaryEmailType`
* `ContactEmail`
* `ContactLocation`
* `ContactPhone`
* `ContactWebSite`
* `Annotation`
* `<fDeleted>`: Is this contact deleted? (`true` or `false`)
* `<lastChange>`: The ISO 8601 timestamp of the time this contact was last modified.
#### ab
This element contains seven children:
* `<abId>`: Your [Address Book Service](../abservice.md) GUID.
* `<abInfo>`: Described [below](#abinfo).
* `<lastChange>`: The ISO 8601 timestamp of the time a change was last made to the Address Book.
* `<DynamicItemLastChanged>`: The ISO 8601 timestamp of the time any dynamic item was last modified.
* `<RecentActivityItemLastChanged>`: The ISO 8601 timestamp of the time a "recent activity item" was last modified.
* `<createDate>`: The ISO 8601 timestamp of the time this Address Book was created.
* `<propertiesChanged>`: Contains a space delimited list of changed elements in an unknown location.
##### abInfo
This element contains ten children:
* `<ownerPuid>`: This is always `0`.
* `<OwnerCID>`: Your Common ID, an signed 64-bit integer.
* `<ownerEmail>`: Your user handle.
* `<fDefault>`: unknown (`true` or `false`)
* `<joinedNamespace>`: unknown (`true` or `false`)
* `<IsBot>`: Is this account provisioned? (`true` or `false`)
* `<IsParentManaged>`: Is this a children's account? (`true` or `false`)
* `<SubscribeExternalPartner>`: unknown (`true` or `false`)
* `<NotifyExternalPartner>`: unknown (`true` or `false`)
* `<AddressBookType>`: Is always set to `Individual`.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABFindAll
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1128
<?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>ContactSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABFindAll
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<abView>Full</abView>
<deltasOnly>false</deltasOnly>
<lastChange>0001-01-01T00:00:00.0000000-08:00</lastChange>
</ABFindAll>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 6684
<?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;MjAyNC0xMS0yMFQxMToyMDoyNy43MTVa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABFindAllResponse
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ABFindAllResult>
<groups>
<Group>
<groupId>f60efbe7-94af-4b16-b926-e4e10878d329</groupId>
<groupInfo>
<annotations>
<Annotation>
<Name>MSN.IM.Display</Name>
</Annotation>
</annotations>
<groupType>c8529ce2-6ead-434d-881f-341e17db3ff8</groupType>
<name>Friends</name>
<IsNotMobileVisible>false</IsNotMobileVisible>
<IsPrivate>false</IsPrivate>
<IsFavorite>false</IsFavorite>
</groupInfo>
</Group>
</groups>
<contacts>
<Contact>
<contactId>c1f9a363-4ee9-4a33-a434-b056a4c55b98</contactId>
<contactInfo>
<contactType>Regular</contactType>
<quickName>anotheruser</quickName>
<passportName>anotheruser@hotmail.com</passportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>another user</displayName>
<puid>0</puid>
<groupIds>
<guid>f60efbe7-94af-4b16-b926-e4e10878d329</guid>
</groupIds>
<CID>4388220788362762</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>false</isMobileIMEmabled>
<isMessengerUser>true</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType>
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhonePersonal</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
</contactInfo>
<propertiesChanged />
<fDeleted>false</fDeleted>
<lastChange>2024-11-20T11:43:00.1230000-08:00</lastChange>
</Contact>
<Contact>
<contactId>a47e39cf-312c-4100-94a6-f2b33adf5b68</contactId>
<contactInfo>
<phones>
<ContactPhone>
<contactPhoneType>ContactPhoneMobile</contactPhoneType>
<number>15551111222</number>
<isMessengerEnabled>true</isMessengerEnabled>
<propertiesChanged />
</ContactPhone>
</phones>
<contactType>Regular</contactType>
<quickName>john</quickName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>john</displayName>
<puid>0</puid>
<CID>0</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>true</isMobileIMEnabled>
<isMessengerUser>false</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType>
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhoneMobile</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
</contactInfo>
<propertiesChanged />
<fDeleted>false</fDeleted>
<lastChange>2024-11-20T11:44:40.4560000-08:00</lastChange>
</Contact>
<Contact>
<contactId>c867a811-089f-4c4c-a601-e983881f003a</contactId>
<contactInfo>
<annotations>
<Annotation>
<Name>MSN.IM.MBEA</Name>
<Value>0</Value>
</Annotation>
<Annotation>
<Name>MSN.IM.GTC</Name>
<Value>1</Value>
</Annotation>
<Annotation>
<Name>MSN.IM.BLP</Name>
<Value>1</Value>
</Annotation>
</annotations>
<phones>
<ContactPhone>
<contactPhoneType>ContactPhonePersonal</contactPhoneType>
<number>123 (4567)</number>
</ContactPhone>
</phones>
<contactType>Me</contactType>
<quickName>Q</quickName>
<passportName>example@hotmail.com</passportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>example user</displayName>
<puid>0</puid>
<CID>4294967298</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>false</isMobileIMEnabled>
<isMessengerUser>false</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhonePersonal</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
</contactInfo>
<propertiesChanged />
<fDeleted>false</fDeleted>
<lastChange>2024-11-20T11:26:00.4180000-08:00</lastChange>
</Contact>
</contacts>
</ABFindAllResult>
<ab>
<abId>00000000-0000-0000-0000-000000000000</abId>
<abInfo>
<ownerPuid>0</ownerPuid>
<OwnerCID>4294967298</OwnerCID>
<ownerEmail>example@hotmail.com</ownerEmail>
<fDefault>true</fDefault>
<joinedNamespace>false</joinedNamespace>
<IsBot>false</IsBot>
<IsParentManaged>false</IsParentManaged>
<SubscribeExternalPartner>false</SubscribeExternalPartner>
<NotifyExternalPartner>false</NotifyExternalPartner>
<AddressBookType>Individual</AddressBookType>
</abInfo>
<lastChange>2024-11-20T11:26:00.4180000-08:00</lastChange>
<DynamicItemLastChanged>0001-01-01T00:00:00</DynamicItemLastChanged>
<createDate>2024-10-10T20:38:51.0000000-08:00</createDate>
</ab>
</ABFindAllResponse>
</soap:Body>
</soap:Envelope>
```

View file

@ -112,7 +112,7 @@ Content-Length: 1486
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Type: text/xml; charset=utf-8
Content-Length: 903
<?xml version="1.0" encoding="utf-8"?>

View file

@ -119,7 +119,7 @@ Content-Length: 1360
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Type: text/xml; charset=utf-8
Content-Length: 931
<?xml version="1.0" encoding="utf-8"?>

View file

@ -98,7 +98,7 @@ Content-Length: 1366
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 779
Content-Length: 779; charset=utf-8
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope

View file

@ -80,7 +80,7 @@ Content-Length: 1140
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 772
Content-Length: 772; charset=utf-8
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope

View file

@ -67,7 +67,7 @@ Content-Length: 1276
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABGroupDelete
<ABGroupUpdate
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
@ -80,7 +80,7 @@ Content-Length: 1276
<propertiesChanged>GroupName </propertiesChanged>
</Group>
</groups>
</ABGroupDelete>
</ABGroupUpdate>
</soap:Body>
</soap:Envelope>
```
@ -89,7 +89,7 @@ Content-Length: 1276
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 772
Content-Length: 772; charset=utf-8
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope

View file

@ -15,7 +15,7 @@ Related: [Address Book Service](abservice.md) (for Forward List (PL) members).
*All actions listed have the prefix of
`http://www.msn.com/webservices/AddressBook/`.*
* FindMembership (internal name: `Sharing.Pull.Membership`)
* [FindMembership](sharingservice/findmembership.md) (internal name: `Sharing.Pull.Membership`)
* [AddMember](sharingservice/addmember.md) (internal name: `Sharing.Push.Member.Add`)
* [DeleteMember](sharingservice/deletemember.md) (internal name: `Sharing.Push.Member.Delete`)

View file

@ -3,6 +3,7 @@
Adds a user to the Allow List (AL), Block List (BL),
or if the user is in the Pending List (PL), the Reverse List (RL).
For adding a user to the Forward List (FL), read the [`ABContactAdd`](../abservice/abcontactadd.md) article.
# Client/Request
The template used in this action is described on the [Address Book Service](../abservice.md) main page.
@ -137,7 +138,7 @@ Content-Length: 1468
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Type: text/xml; charset=utf-8
Content-Length: 768
<?xml version="1.0" encoding="utf-8"?>

View file

@ -1,7 +1,8 @@
# Introduction
`DeleteMember` is one of the SOAP actions the [Contact Sharing Service](../sharingservice.md) provides.
Deletes a user from the Allow List (AL), Block List (BL), or the Pending List (PL).
Deletes a member from the Allow List (AL), Block List (BL), or the Pending List (PL).
To delete a contact from the Forward List (FL), read the [`ABContactDelete`](../sharingservice/abcontactdelete.md) article.
# Client/Request
The template used in this action is described on the [Address Book Service](../abservice.md) main page.
@ -81,7 +82,7 @@ POST /abservice/SharingService.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/DeleteMember
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1435
Content-Length: 1438
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
@ -128,7 +129,7 @@ Content-Length: 1435
</Members>
</Membership>
</memberships>
</AddMember>
</DeleteMember>
</soap:Body>
</soap:Envelope>
```
@ -137,7 +138,7 @@ Content-Length: 1435
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 771
Content-Length: 771; charset=utf-8
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope

View file

@ -0,0 +1,298 @@
# Introduction
`FindMembership` is one of the SOAP actions the [Contact Sharing Service](../sharingservice.md) provides.
Returns the full list of members in the Allow List (AL), Block List (BL), Reverse List (RL) and Pending List (PL).
For retrieving information about the Forward List (FL), read the [`ABFindAll`](../abservice/abfindall.md) article.
# Client/Request
The template used in this action is described on the [Address Book Service](../abservice.md) main page.
## FindMembership
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
### serviceFilter
This element only contains the `<Types>` element.
#### Types
This element contains one or multiple `<ServiceType>` elements.
##### ServiceType
Can be any of the following:
* `Messenger`
* `Invitation`
* `SocialNetwork`
* `Space`
* `Profile`
### View
Always set to `Full`.
### deltasOnly
If set to `true`, the `<lastChange>` value is compared against the server
to only provide the updates since the timestamp provided.
### lastChange
This is a ISO 8601 timestamp which denotes the last time you retrieved the memberships,
comes from the response's `<LastChange>` element inside the `<OwnerNamespace>` element.
# Server/Response
The template used in this action is described on the [Address Book Service](../abservice.md) main page.
## FindMembershipResponse
This element only contains the `<FindMembershipResult>` element.
### FindMembershipResult
This element only contains both the `<Services>` and the `<OwnerNamespace>` element.
#### Services
This element only contains one or multiple `<Service>` elements.
##### Service
This element only contains one or multiple [`<Memberships>`](#memberships) elements.
#### OwnerNamespace
This element contains four children:
* `<Info>`: Described [below](#info).
* `<Changes>`: A space delimited list of elements changed in an unknown location.
* `<CreateDate>`: The ISO 8601 timestamp of the time this member was created.
* `<LastChange>`: The ISO 8601 timestamp of the time a change was last made to the memberships.
##### Info
This element contains four children:
* `<Handle>`: Described [below](#handle).
* `<CreatorPuid>`: This is always set to `0`.
* `<CreatorCID>`: The Common ID of this member.
* `<CreatorPassportName>`: The user handle of this member.
###### Handle
This element contains three children:
* `<Id>`: The [Address Book Service](../abservice.md) GUID.
* `<IsPassportNameHidden>`: This is always set to `false`.
* `<CID>`: This is always set to `0`.
# Memberships
This element only contains one or multiple `<Membership>` elements.
## Membership
This element has three children:
* `<MemberRole>`: The type of list:
* `Allow`: The Allow List (AL).
* `Block`: The Block List (BL).
* `Reverse`: The Reverse List (RL).
* `<Members>`: Explained [below](#members).
* `<MembershipIsComplete>`: If this is the full list of `<Members>` in this `<Membership>`,
set to `true`, otherwise, set to `false`.
### Members
This element only contains one or multiple `<Member>` elements.
#### Member
This element has only one attribute:
* `xsi:type`: The type of this `<Member>`:
* `PassportMember`
* `EmailMember`
* `PhoneMember`
This element contains seven children:
* `<Type>`: The type of this `<Member>`:
* `Passport`
* `Email`
* `Phone`
* `<State>`: This is usually only set to `Accepted`.
* `<Deleted>`: Has this member been deleted? (`true` or `false`).
* `<LastChanged>`: The ISO 8601 timestamp of the time this member was last modified.
* `<JoinedDate>`: The ISO 8601 timestamp of the time when this member joined the service.
* `<ExpirationDate>`: The ISO 8601 timestamp of the time when this member expires.
Set to `0001-01-01T00:00:00` to disable this behaviour.
* `<Changes>`: A space delimited list of elements changed in an unknown place.
This element also contains one of the following mutually exclusive children:
1) `<PassportName>`: The user handle associated with this membership.
2) `<Email>`: The e-mail address associated with this membership.
3) `<PhoneNumber>`: The phone number associated with this membership.
This element also contains the following five children IF the `<Type>` is set to `Passport`:
* `<IsPassportNameHidden>`: Are the contents of `<PassportName>` hidden to the user (`true` or `false`)?
* `<PassportId>`: This is always set to `0`.
* `<CID>`: The Common ID of this member, which is a signed 64-bit integer.
* `<PassportChanges>`: A space delimited list of elements changed in an unknown place.
* `<LookedupByCID>`: Did we search for this contact using their `<CID>` (`true` or `false`)?
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/FindMembership
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1190
<?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>ContactSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<FindMembership
xmlns="http://www.msn.com/webservices/AddressBook"
>
<serviceFilter>
<Types>
<ServiceType>Messenger</ServiceType>
</Types>
</serviceFilter>
<View>Full</View>
<deltasOnly>false</deltasOnly>
<lastChange>0001-01-01T00:00:00.0000000-08:00</lastChange>
</FindMembership>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 4253
<?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;MjAyNC0xMS0yMFQxMToyMDoyNy43MTVa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<FindMembershipResponse
xmlns="http://www.msn.com/webservices/AddressBook"
>
<FindMembershipResult>
<Services>
<Service>
<Memberships>
<Membership>
<MemberRole>Allow</MemberRole>
<Members>
<Member
xsi:type="PassportMember"
>
<MembershipId>1</MembershipId>
<Type>Passport</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-10T20:38:51.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PassportName>anotheruser@hotmail.com</PassportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<PassportId>0</PassportId>
<CID>4388220788362762</CID>
<PassportChanges />
<LookedupByCID>false</LookedupByCID>
</Member>
<Member
xsi:type="PhoneMember"
>
<MembershipId>3</MembershipId>
<Type>Phone</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-22T21:40:16.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PhoneNumber>15551111222</PhoneNumber>
</Member>
</Members>
<MembershipIsComplete>true</MembershipIsComplete>
</Membership>
<Membership>
<MemberRole>Reverse</MemberRole>
<Members>
<Member
xsi:type="PassportMember"
>
<MembershipId>2</MembershipId>
<Type>Passport</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-10T20:38:51.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PassportName>anotheruser@hotmail.com</PassportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<PassportId>0</PassportId>
<CID>4388220788362762</CID>
<PassportChanges />
<LookedupByCID>false</LookedupByCID>
</Member>
</Members>
<MembershipIsComplete>true</MembershipIsComplete>
</Membership>
</Memberships>
<Info>
<Handle>
<Id>1</Id>
<Type>Messenger</Type>
<ForeignId />
</Handle>
<InverseRequired>false</InverseRequired>
<AuthorizationCriteria>Everyone</AuthorizationCriteria>
<IsBot>false</IsBot>
</Info>
<Changes />
<LastChange>2024-11-20T12:58:02.4680000-08:00</LastChange>
<Deleted>false</Deleted>
</Service>
</Services>
<OwnerNamespace>
<Info>
<Handle>
<Id>00000000-0000-0000-0000-000000000000</Id>
<IsPassportNameHidden>false</IsPassportNameHidden>
<CID>0</CID>
</Handle>
<CreatorPuid>0</CreatorPuid>
<CreatorCID>4294967298</CreatorCID>
<CreatorPassportName>example@hotmail.com</CreatorPassportName>
</Info>
<Changes />
<CreateDate>2024-10-10T20:38:51.0000000-08:00</CreateDate>
<LastChange>2024-11-20T12:58:02.4680000-08:00</LastChange>
</OwnerNamespace>
</FindMembershipResult>
</FindMembershipResponse>
</soap:Body>
</soap:Envelope>
```

View file

@ -27,14 +27,14 @@ This is a list of all known MSNP commands and their originating version.
| [`PRP`](commands/prp.md) | N | Y | N | [MSNP5](versions/msnp5.md) | [MSNP8](versions/msnp8.md) (Removed List Version in [SYN](commands/syn.md)), [MSNP10](versions/msnp10.md) (Removed List Version outside of [SYN](commands/syn.md) if `ABCHMigrated: 1`) |
| [`BPR`](commands/bpr.md) | N | N | Y | [MSNP5](versions/msnp5.md) | [MSNP8](versions/msnp8.md) (Removed List Version and user handle in [SYN](commands/syn.md)), [MSNP10](versions/msnp10.md) (Removed List Version outside of SYN if `ABCHMigrated: 1`) |
| [`RNG`](commands/rng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) ([SYN](commands/syn.md): removed iterator parameters, condensed all lists into a single parameter, removed List Version), [MSNP10](versions/msnp10.md) (Added prefixes to contact's handle and friendly name, and added a GUID parameter if `ABCHMigrated: 1`. Also changed group IDs to GUIDs.), [MSNP12](versions/msnp12.md) (Added network IDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABFindAll` and [Contact Sharing Service](services/sharingservice.md)'s `FindMemberships` instead.), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) ([SYN](commands/syn.md): removed iterator parameters, condensed all lists into a single parameter, removed List Version), [MSNP10](versions/msnp10.md) (Added prefixes to contact's handle and friendly name, and added a GUID parameter if `ABCHMigrated: 1`. Also changed group IDs to GUIDs.), [MSNP12](versions/msnp12.md) (Added network IDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABFindAll`](services/abservice/abfindall.md) and [Contact Sharing Service](services/sharingservice.md)'s [`FindMembership`](services/sharingservice/findmembership.md) instead.), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
| [`ADD`](commands/add.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Removed; automatic disconnect, use [ADC](commands/adc.md) instead) |
| [`REM`](commands/rem.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Replaced user handles with GUIDs if list is the Forward List (FL), and removed list versions from all responses), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, replaced with RML and [Address Book Service](services/abservice.md)'s [`ABContactDelete`](services/abservice/abcontactdelete.md) and [Contact Sharing Service](services/sharingservice.md)'s [`DeleteMember`](services/sharingservice/deletemember.md) instead) |
| [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`PNG`](commands/png.md) | N | Y | N | [MSNP2](versions/msnp2.md) | |
| [`QNG`](commands/qng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added next seconds parameter) |
| [`URL`](commands/url.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (Added Passport Site ID support as parameter 3), removed `PASSWORD` service), [MSNP5](versions/msnp5.md) (Added `MOBILE` and `CHGMOB` services), [MSNP6](versions/msnp6.md) (Added `PROFILE`, `N2PACCOUNT` and `N2PFUND` services), [MSNP7](versions/msnp7.md) (Added `CHAT` service), [MSNP8](versions/msnp8.md) (Added `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH` services) |
| [`LSG`](commands/lsg.md) | N | Y | Y\*| [MSNP7](versions/msnp7.md) | [MSNP8](versions/msnp8.md) (Removed iterator and List Version parameters from [SYN](commands/syn.md) version), [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABFindAll` instead.) November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
| [`LSG`](commands/lsg.md) | N | Y | Y\*| [MSNP7](versions/msnp7.md) | [MSNP8](versions/msnp8.md) (Removed iterator and List Version parameters from [SYN](commands/syn.md) version), [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABFindAll`](services/abservice/abfindall.md) instead.) November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
| [`ADG`](commands/adg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused `0` and List Version parameters, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect?, use [Address Book Service](services/abservice.md) [`ABGroupAdd`](services/abservice/abgroupadd.md) instead.) |
| [`ILN`](commands/iln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) |
| [`NLN`](commands/nln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) |