Obtenir une extension ouverteGet open extension

Obtenez une extension d’ouverture (objet openTypeExtension) identifiée par son nom ou son nom complet.Get an open extension (openTypeExtension object) identified by name or fully qualified name.

Le tableau suivant répertorie les trois scénarios dans lesquels vous pouvez obtenir une extension d’ouverture à partir d’une instance de ressource prise en charge.The following table lists the three scenarios where you can get an open extension from a supported resource instance.

Scénario GETGET scenario Ressources prises en chargeSupported resources Corps de la réponseResponse body
Obtenir une extension spécifique d’une instance de ressource connue.Get a specific extension from a known resource instance. Appareil, événement, groupe, événement de groupe, publication de groupe, message, organisation, contact personnel, utilisateurDevice, event, group, group event, group post, message, organization, personal contact, user Extension d’ouverture uniquement.Open extension only.
Obtenir une instance de ressource connue développée avec une extension spécifique.Get a known resource instance expanded with a specific extension. Appareil, événement, groupe, événement de groupe, publication de groupe, message, organisation, contact personnel, utilisateurDevice, event, group, group event, group post, message, organization, personal contact, user Instance de ressource développée avec l’extension d’ouverture.A resource instance expanded with the open extension.
Rechercher et développer des instances de ressource avec une extension spécifique.Find and expand resource instances with a specific extension. Événement, événement de groupe, publication de groupe, message, contact personnelEvent, group event, group post, message, personal contact Instances de ressource développées avec l’extension d’ouverture.Resource instances expanded with the open extension.

AutorisationsPermissions

Selon la ressource qui contient l'extension et le type d'autorisation (délégué ou application) demandé, l'autorisation spécifiée dans le tableau suivant est la permission la moins privilégiée requise pour appeler cette API.Depending on the resource that contains the extension and the permission type (delegated or application) requested, the permission specified in the following table is the least privileged required to call this API. Pour plus d’informations, notamment sur la façon de choisir les autorisations, voir Autorisations.To learn more, including how to choose permissions, see Permissions.

Ressource prise en chargeSupported resource Déléguée (compte professionnel ou scolaire)Delegated (work or school account) Déléguée (compte Microsoft personnel)Delegated (personal Microsoft account) ApplicationApplication
appareildevice Directory.Read.AllDirectory.Read.All Non pris en chargeNot supported Device.ReadWrite.AllDevice.ReadWrite.All
eventevent Calendars.ReadCalendars.Read Calendars.ReadCalendars.Read Calendars.ReadCalendars.Read
groupegroup Group.Read.AllGroup.Read.All Non pris en chargeNot supported Group.Read.AllGroup.Read.All
group eventgroup event Group.Read.AllGroup.Read.All Non pris en chargeNot supported Non pris en chargeNot supported
group postgroup post Group.Read.AllGroup.Read.All Non pris en chargeNot supported Group.Read.AllGroup.Read.All
messagemessage Mail.ReadMail.Read Mail.ReadMail.Read Mail.ReadMail.Read
organizationorganization User.ReadUser.Read Non pris en chargeNot supported Non pris en chargeNot supported
personal contactpersonal contact Contacts.ReadContacts.Read Contacts.ReadContacts.Read Contacts.ReadContacts.Read
useruser User.ReadUser.Read User.ReadUser.Read User.Read.AllUser.Read.All

Requête HTTPHTTP request

Cette section indique la syntaxe pour chacun des trois scénarios GET décrits ci-dessus.This section lists the syntax for each of the three GET scenarios described above.

Obtenir une extension spécifique dans une instance de ressource connueGet a specific extension in a known resource instance

Utilisez la même demande REST que pour l’obtention de l’instance de la ressource et identifiez l’extension à l’aide de la propriété de navigation extensions de cette instance.Use the same REST request as getting the resource instance, and identify the extension using the extensions navigation property of that instance.

GET /devices/{Id}/extensions/{extensionId}
GET /users/{Id|userPrincipalName}/events/{Id}/extensions/{extensionId}
GET /groups/{Id}/extensions/{extensionId}
GET /groups/{Id}/events/{Id}/extensions/{extensionId}
GET /groups/{Id}/threads/{Id}/posts/{Id}/extensions/{extensionId}
GET /users/{Id|userPrincipalName}/messages/{Id}/extensions/{extensionId}
GET /organization/{Id}/extensions/{extensionId}
GET /users/{Id|userPrincipalName}/contacts/{Id}/extensions/{extensionId}
GET /users/{Id|userPrincipalName}/extensions/{extensionId}

Obtenir une instance de ressource connue développée avec une extension correspondanteGet a known resource instance expanded with a matching extension

Pour l’événement, l’événement de groupe, la publication de groupe, le message, les types de ressources du contact personnel, vous pouvez utiliser la même requête REST que lorsque vous obtenez l’instance de la ressource. Recherchez une extension qui correspond à un filtre sur sa propriété id et développez l’instance avec l’extension.For the event, group event, group post, message, personal contact resource types, you can use the same REST request as getting the resource instance, look for an extension that matches a filter on its id property, and expand the instance with the extension. La réponse inclut la plupart des propriétés de la ressource.The response includes most of the resource properties.

GET /users/{Id|userPrincipalName}/events/{Id}?$expand=extensions($filter=id eq '{extensionId}')
GET /groups/{Id}/events/{Id}?$expand=extensions($filter=id eq '{extensionId}')
GET /groups/{Id}/threads/{Id}/posts/{Id}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{Id|userPrincipalName}/messages/{Id}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{Id|userPrincipalName}/contacts/{Id}?$expand=extensions($filter=id eq '{extensionId}')

Pour l’appareil, le groupe, l’organisation et les types de ressources de l’utilisateur, vous devez également utiliser un paramètre $select pour inclure la propriété id et toute autre propriété de votre choix de l’instance de la ressource :For the device, group, organization, and user resource types, you must also use a $select parameter to include the id property and any other properties you want from the resource instance:

GET /devices/{Id}?$expand=extensions($filter=id eq '{extensionId}')&$select=id,{property_1},{property_n}
GET /groups/{Id}?$expand=extensions($filter=id eq '{extensionId}')&$select=id,{property_1},{property_n}
GET /organization/{Id}?$expand=extensions($filter=id eq '{extensionId}')&$select=id,{property_1},{property_n}
GET /users/{Id|userPrincipalName}?$expand=extensions($filter=id eq '{extensionId}')&$select=id,{property_1},{property_n}

Appliquer un filtre pour trouver des instances de ressource développées avec une extension correspondanteFilter for resource instances expanded with a matching extension

Utilisez la même demande REST que pour l’obtention d’une collection de la ressource prise en charge, filtrez la collection pour rechercher les instances qui contiennent une extension avec une propriété id correspondante et développez ces instances avec l’extension.Use the same REST request as getting a collection of the supported resource, filter the collection for instances that contain an extension with a matching id property, and expand these instances with the extension.

GET /users/{Id|userPrincipalName}/events?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /groups/{Id}/events?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /groups/{Id}/threads/{Id}/posts?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /users/{Id|userPrincipalName}/messages?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /users/{Id|userPrincipalName}/contacts?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')

Remarque :  La syntaxe ci-dessus présente quelques techniques courantes d’identification d’une instance de ressource ou une collection, afin d’obtenir une extension à partir de celle-ci.Note: The above syntax shows some common ways to identify a resource instance or collection, in order to get an extension from it. Toutes les autres syntaxes qui vous permettent d’identifier ces instances de ressource ou collections prennent en charge l’obtention des extensions d’ouverture à partir de celles-ci de façon similaire.All other syntax that allows you to identify these resource instances or collections supports getting open extensions from them in a similar way.

Paramètres du chemin d’accèsPath parameters

ParamètreParameter TypeType DescriptionDescription
IDId stringstring Espace réservé à l’identificateur unique d’un objet dans la collection correspondante, telle que messages, événements, contacts. Obligatoire. À ne pas confondre avec la propriété id d’un élément openTypeExtension.Placeholder for a unique identifier for an object in the corresponding collection such as messages, events, contacts. Required. Not to be confused with the id property of an openTypeExtension.
extensionIdextensionId stringstring Espace réservé à un nom d’extension qui est l’identificateur de texte unique d’une extension ou d’un nom complet qui associe l’identificateur de texte unique et un type d’extension. Le nom complet est renvoyé dans la propriété id lorsque vous créez l’extension. Obligatoire.Placeholder for an extension name which is a unique text identifier for an extension, or a fully qualified name which concatenates the extension type and unique text identifier. The fully qualified name is returned in the id property when you create the extension. Required.

Paramètres facultatifs de la requêteOptional query parameters

Veillez à appliquer le codage URL aux espaces dans la chaîne $filter.Make sure you apply URL encoding to the space characters in the $filter string.

NomName ValeurValue DescriptionDescription
$filter$filter chaînestring Renvoie une extension avec son id correspondant à la valeur de paramètre extensionId.Returns an extension with its id matching the extensionId parameter value.
$filter avec un opérateur$filter with any operator chaînestring Renvoie les instances d’une collection de ressources qui contiennent une extension avec son id correspondant à la valeur de paramètre extensionId.Returns instances of a resource collection that contain an extension with its id matching the extensionId parameter value.
$expand$expand chaînestring Développe une instance de ressource pour inclure une extension.Expands a resource instance to include an extension.

En-têtes de demandeRequest headers

NomName ValeurValue
AutorisationAuthorization Porteur {token}. Obligatoire.Bearer {token}. Required.

Corps de la demandeRequest body

N’indiquez pas le corps de la demande pour cette méthode.Do not supply a request body for this method.

RéponseResponse

En cas de réussite, cette méthode renvoie un code de réponse 200 OK et l’objet openTypeExtension dans le corps de la réponse. En fonction de la demande GET, le corps de la réponse exacte varie.If successful, this method returns a 200 OK response code and openTypeExtension object in the response body. Depending on the GET query, the exact response body differs.

ExempleExample

Demande 1Request 1

Le premier exemple montre deux manières de faire référence à une extension et montre comment obtenir l’extension dans le message spécifié. La réponse est la même, quelle que soit la méthode utilisée pour faire référence à l’extension.The first example shows 2 ways of referencing an extension and gets the extension in the specified message. The response is the same regardless of the way used to reference the extension.

Premièrement, par son nom :First, by its name:

GET https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Com.Contoso.Referral

Deuxièmement, par son ID (nom complet) :Second, by its ID (fully qualified name):

GET https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral

Exemple de code SDKSDK sample code


GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var extension = await graphClient.Me.Messages["AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl==="].Extensions["Com.Contoso.Referral"]
    .Request()
    .GetAsync();

Pour plus d’informations sur la façon d' Ajouter le kit de développement logiciel (SDK) à votre projet et de créer une instance authProvider , consultez la documentation SDK .Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.

Réponse 1Response 1

Voici la réponse pour le premier exemple.Here is the response for the first example.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions
('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
    "extensionName": "Com.Contoso.Referral",
    "id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
    "companyName": "Wingtip Toys",
    "dealValue": 500050,
    "expirationDate": "2015-12-03T10:00:00Z"
}

Demande 2Request 2

Le deuxième exemple montre comment faire référence à une extension par son nom et obtenir l’extension dans l’événement de groupe spécifié.The second example references an extension by its name and gets the extension in the specified group event.

GET https://graph.microsoft.com/v1.0/groups/f5480dfd-7d77-4d0b-ba2e-3391953cc74a/events/AAMkADVl17IsAAA=/extensions/Com.Contoso.Deal/

Réponse 2Response 2

Voici la réponse pour le deuxième exemple.Here is the response from the second example.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups('f5480dfd-7d77-4d0b-ba2e-3391953cc74a')/events('AAMkADVl7IsAAA%3D')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Deal",
    "extensionName": "Com.Contoso.Deal",
    "companyName": "Alpine Skis",
    "dealValue": 1010100,
    "expirationDate": "2015-07-03T13:04:00Z"
}

Exemple de code SDKSDK sample code


GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var extension = await graphClient.Groups["f5480dfd-7d77-4d0b-ba2e-3391953cc74a"].Events["AAMkADVl17IsAAA="].Extensions["Com.Contoso.Deal"]
    .Request()
    .GetAsync();

Pour plus d’informations sur la façon d' Ajouter le kit de développement logiciel (SDK) à votre projet et de créer une instance authProvider , consultez la documentation SDK .Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.


Demande 3Request 3

Le troisième exemple montre comment obtenir et développer le message spécifié en incluant l’extension renvoyée par un filtre. Le filtre renvoie l’extension dont l’ID correspond à un nom complet.The third example gets and expands the specified message by including the extension returned from a filter. The filter returns the extension that has its id matching a fully qualified name.

GET https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===?$expand=extensions($filter=id%20eq%20'Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')

Réponse 3Response 3

Voici la réponse pour le troisième exemple. Remarque : l’objet de la réponse illustré ici peut être tronqué à des fins de concision. Toutes les propriétés sont renvoyées à partir d’un appel réel.And here is the response from the third example. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/messages/$entity",
    "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')",
    "@odata.etag": "W/\"CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AABNsWMM\"",
    "id": "AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===",
    "changeKey": "CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AABNsWMM",
    "categories": [
    ],
    "createDateTime": "2015-06-19T02:03:31Z",
    "lastModifiedDateTime": "2015-08-13T02:28:00Z",
    "subject": "Attached is the requested info",
    "bodyPreview": "See the images attached.",
    "body": {
        "contentType": "HTML",
        "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<style type=\"text/css\" style=\"display:none;\"><!-- P {margin-top:0;margin-bottom:0;} --></style>\r\n</head>\r\n<body dir=\"ltr\">\r\n<div id=\"divtagdefaultwrapper\" style=\"font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;\">\r\n<p>See the images attached. <br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n"
    },
    "importance": "Normal",
    "hasAttachments": true,
    "parentFolderId": "AQMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===QAAAA==",
    "from": {
        "emailAddress": {
            "address": "desmond@contoso.com",
            "name": "Desmond Raley"
        }
    },
    "sender": {
        "emailAddress": {
            "address": "desmond@contoso.com",
            "name": "Desmond Raley"
        }
    },
    "toRecipients": [
        {
            "emailAddress": {
                "address": "wendy@contoso.com",
                "name": "Wendy Molina"
            }
        }
    ],
    "ccRecipients": [
    ],
    "bccRecipients": [
    ],
    "replyTo": [
    ],
    "conversationId": "AAQkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===mivdTmQ=",
    "receivedDateTime": "2015-06-19T02:05:04Z",
    "sentDateTime": "2015-06-19T02:04:59Z",
    "isDeliveryReceiptRequested": false,
    "isReadReceiptRequested": false,
    "isDraft": false,
    "isRead": true,
    "webLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===%2FNJTqt5NqHlVnKVBwCY4MQpaFz9SbqUDe4%2Bbs88AAAAAAEJAACY4MQpaFz9SbqUDe4%2Bbs88AAApA4JMAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
    "inferenceClassification": "Focused",
    "extensions@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('desmond40contoso.com')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions", 
    "extensions": [ 
      { 
        "@odata.type": "#microsoft.graph.openTypeExtension",
        "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
        "extensionName": "Com.Contoso.Referral",
        "id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
        "companyName": "Wingtip Toys",
        "dealValue": 500050,
        "expirationDate": "2015-12-03T10:00:00Z"
      }
     ]
}

Exemple de code SDKSDK sample code


GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var message = await graphClient.Me.Messages["AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl==="]
    .Request()
    .Filter("id eq 'Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')")
    .Expand("extensions($filter=id%20eq%20'Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')")
    .GetAsync();

Pour plus d’informations sur la façon d' Ajouter le kit de développement logiciel (SDK) à votre projet et de créer une instance authProvider , consultez la documentation SDK .Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.


Demande 4Request 4

Le quatrième exemple montre comment faire référence à une extension par son nom complet et obtenir l’extension dans le billet de groupe spécifié.The fourth example references an extension by its fully qualified name and gets the extension in the specified group post.

GET https://graph.microsoft.com/v1.0/groups/37df2ff0-0de0-4c33-8aee-75289364aef6/threads/AAQkADJizZJpEWwqDHsEpV_KA==/posts/AAMkADJiUg96QZUkA-ICwMubAADDEd7UAAA=/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Estimate

Réponse 4Response 4

Voici la réponse pour le quatrième exemple.Here is the response from the fourth example.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups('37df2ff0-0de0-4c33-8aee-75289364aef6')/threads('AAQkADJizZJpEWwqDHsEpV_KA%3D%3D')/posts('AAMkADJiUg96QZUkA-ICwMubAADDEd7UAAA%3D')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Estimate",
    "extensionName": "Com.Contoso.Estimate",
    "companyName": "Contoso",
    "expirationDate": "2015-07-03T13:04:00Z",
    "Strings@odata.type": "#Collection(String)",
    "topPicks": [
        "Employees only",
        "Add spouse or guest",
        "Add family"
    ]
}

Demande 5Request 5

Le cinquième exemple montre comment consulter tous les messages dans la boîte aux lettres de l’utilisateur connecté pour trouver ceux qui contiennent une extension correspondant à un filtre, et comment les développer en incluant l’extension. Le filtre renvoie les extensions contenant la propriété id correspondant au nom de l’extension Com.Contoso.Referral.The fifth example looks at all messages in the signed-in user's mailbox to find those that contain an extension matching a filter, and expands them by including the extension. The filter returns extensions that has the id property matching the extension name Com.Contoso.Referral.

GET https://graph.microsoft.com/v1.0/me/messages?$filter=Extensions/any(f:f/id%20eq%20'Com.Contoso.Referral')&$expand=Extensions($filter=id%20eq%20'Com.Contoso.Referral')

Réponse 5Response 5

Dans la réponse du cinquième exemple, il existe un seul message dans la boîte aux lettres de l’utilisateur qui a une extension dont l’ID est égal à Com.Contoso.Referral.In this response for the fifth example, there is only one message in the user's mailbox that has an extension with its id equal to Com.Contoso.Referral.

Remarque : l’objet de la réponse illustré ici peut être tronqué à des fins de concision. Toutes les propriétés sont renvoyées à partir d’un appel réel.Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/messages",
  "value": [
  {

    "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')",
    "@odata.etag": "W/\"CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AABNsWMM\"",
    "id": "AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===",
    "changeKey": "CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AABNsWMM",
    "categories": [
    ],
    "createDateTime": "2015-06-19T02:03:31Z",
    "lastModifiedDateTime": "2015-08-13T02:28:00Z",
    "subject": "Attached is the requested info",
    "bodyPreview": "See the images attached.",
    "body": {
        "contentType": "HTML",
        "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<style type=\"text/css\" style=\"display:none;\"><!-- P {margin-top:0;margin-bottom:0;} --></style>\r\n</head>\r\n<body dir=\"ltr\">\r\n<div id=\"divtagdefaultwrapper\" style=\"font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;\">\r\n<p>See the images attached. <br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n"
    },
    "importance": "Normal",
    "hasAttachments": true,
    "parentFolderId": "AQMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===QAAAA==",
    "from": {
        "emailAddress": {
            "address": "desmond@contoso.com",
            "name": "Desmond Raley"
        }
    },
    "sender": {
        "emailAddress": {
            "address": "desmond@contoso.com",
            "name": "Desmond Raley"
        }
    },
    "toRecipients": [
        {
            "emailAddress": {
                "address": "wendy@contoso.com",
                "name": "Wendy Molina"
            }
        }
    ],
    "ccRecipients": [
    ],
    "bccRecipients": [
    ],
    "replyTo": [
    ],
    "conversationId": "AAQkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===mivdTmQ=",
    "receivedDateTime": "2015-06-19T02:05:04Z",
    "sentDateTime": "2015-06-19T02:04:59Z",
    "isDeliveryReceiptRequested": false,
    "isReadReceiptRequested": false,
    "isDraft": false,
    "isRead": true,
    "webLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===%2FNJTqt5NqHlVnKVBwCY4MQpaFz9SbqUDe4%2Bbs88AAAAAAEJAACY4MQpaFz9SbqUDe4%2Bbs88AAApA4JMAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
    "inferenceClassification": "Focused",
    "extensions@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('desmond40contoso.com')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions", 
    "extensions": [ 
      { 
        "@odata.type": "#microsoft.graph.openTypeExtension",
        "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
        "extensionName": "Com.Contoso.Referral",
        "id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
        "companyName": "Wingtip Toys",
        "dealValue": 500050,
        "expirationDate": "2015-12-03T10:00:00Z"
      }
     ]
  }
  ]
}