Créer une propriété étendue à valeur unique

Espace de noms: microsoft.graph

Créez une ou plusieurs propriétés étendues à valeur unique dans une instance nouvelle ou existante d’une ressource.

Les ressources utilisateur suivantes sont prises en charge :

Les ressources de groupe suivantes :

Consultez la rubrique relative à la vue d’ensemble des propriétés étendues pour savoir quand utiliser les extensions d’ouverture ou les propriétés étendues, et comment spécifier les propriétés étendues.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Selon la ressource dans laquelle vous créez la propriété étendue et le type d’autorisation (délégué ou application) que vous demandez, l’autorisation spécifiée dans le tableau suivant est la valeur minimale requise pour appeler cette API. Pour plus d’informations, notamment sur la façon de choisir les autorisations, voir Autorisations.

Ressource prise en charge Déléguée (compte professionnel ou scolaire) Déléguée (compte Microsoft personnel) Application
calendar Calendars.ReadWrite Calendars.ReadWrite Calendars.ReadWrite
contact Contacts.ReadWrite Contacts.ReadWrite Contacts.ReadWrite
contactFolder Contacts.ReadWrite Contacts.ReadWrite Contacts.ReadWrite
event Calendars.ReadWrite Calendars.ReadWrite Calendars.ReadWrite
group calendar Group.ReadWrite.All Non pris en charge Non pris en charge
group event Group.ReadWrite.All Non pris en charge Non pris en charge
group post Group.ReadWrite.All Non pris en charge Non pris en charge
mailFolder Mail.ReadWrite Mail.ReadWrite Mail.ReadWrite
message Mail.ReadWrite Mail.ReadWrite Mail.ReadWrite

Requête HTTP

Vous pouvez créer des propriétés étendues dans une instance de la ressource nouvelle ou existante.

Pour créer une ou plusieurs propriétés étendues dans une nouvelle instance de la ressource, utilisez la même demande REST que celle utilisée lors de la création de l’instance et incluez les propriétés de la nouvelle instance de la ressource et propriété étendue dans le corps de la requête. Certaines ressources prennent en charge la création de plusieurs façons. Pour plus d’informations sur la création de ces instances de ressources, consultez les articles correspondants pour la création d’un message, d’un mailFolder, d’un événement, d’un calendrier, d’un contact, d’un contactFolder, d’un événement de groupe et d’un billet de groupe.

Voici la syntaxe des demandes.

POST /me/messages
POST /users/{id|userPrincipalName}/messages
POST /me/mailFolders/{id}/messages

POST /me/mailFolders
POST /users/{id|userPrincipalName}/mailFolders

POST /me/events
POST /users/{id|userPrincipalName}/events

POST /me/calendars
POST /users/{id|userPrincipalName}/calendars

POST /me/contacts
POST /users/{id|userPrincipalName}/contacts

POST /me/contactFolders
POST /users/{id|userPrincipalName}/contactFolders

POST /groups/{id}/events

POST /groups/{id}/threads/{id}/posts/{id}/reply
POST /groups/{id}/conversations/{id}/threads/{id}/posts/{id}/reply
POST /groups/{id}/threads/{id}/reply
POST /groups/{id}/conversations/{id}/threads/{id}/reply
POST /groups/{id}/threads
POST /groups/{id}/conversations

Pour créer une ou plusieurs propriétés étendues dans une instance de ressource existante, spécifiez l’instance dans la demande et incluez la propriété étendue dans le corps de la requête.

Note Vous ne pouvez pas créer une propriété étendue dans un billet de groupe existant.

PATCH /me/messages/{id}
PATCH /users/{id|userPrincipalName}/messages/{id}
PATCH /me/mailFolders/{id}/messages/{id}

PATCH /me/mailFolders/{id}
PATCH /users/{id|userPrincipalName}/mailFolders/{id}

PATCH /me/events/{id}
PATCH /users/{id|userPrincipalName}/events/{id}

PATCH /me/calendars/{id}
PATCH /users/{id|userPrincipalName}/calendars/{id}

PATCH /me/contacts/{id}
PATCH /users/{id|userPrincipalName}/contacts/{id}

PATCH /me/contactFolders/{id}
PATCH /users/{id|userPrincipalName}/contactFolders/{id}

PATCH /groups/{id}/events/{id}

En-têtes de demande

Nom Valeur
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json

Corps de la demande

Fournissez un organisme JSON de chaque objet singleValueLegacyExtendedProperty dans la propriété de la collection singleValueExtendedProperties de l’instance de la ressource.

Propriété Type Description
singleValueExtendedProperties Collection singleValueLegacyExtendedProperty Tableau d’une ou plusieurs propriétés étendues à valeur unique.
id Chaîne Pour chaque propriété dans la collection singleValueExtendedProperties, spécifiez ceci pour identifier la propriété. Il doit suivre l’un des formats pris en charge. Voir Vue d’ensemble des propriétés étendues Outlook pour plus d’informations. Obligatoire.
value string Pour chaque propriété dans la collection singleValueExtendedProperties, spécifiez la valeur de la propriété. Obligatoire.

Lorsque vous créez une propriété étendue dans une nouvelle instance de la ressource, outre la nouvelle collection singleValueExtendedProperties, fournissez une représentation JSON de cette instance de la ressource (autrement dit, un message, mailFolder, événement, etc.)

Réponse

Code de réponse

Une opération réussie de création d’une propriété étendue dans une nouvelle instance de ressource renvoie 201 Created, sauf dans un nouveau billet de groupe, selon la méthode utilisée, l’opération peut renvoyer 200 OK ou 202 Accepted.

Dans une instance de ressource existante, une opération de création réussie renvoie 200 OK.

Corps de la réponse

Lorsque vous créez une propriété étendue, la réponse inclut uniquement l’instance nouvelle ou existante, mais pas la nouvelle propriété étendue. Pour afficher la propriété étendue nouvellement créée, obtenez l’instance développée avec la propriété étendue.

Lors de la création d’une propriété étendue dans un nouveaubillet de groupe en répondant à un thread ou à une publication, la réponse inclut uniquement un code de réponse, mais pas le nouveau billet ni la propriété étendue.

Exemples

Exemple 1 : Créer un événement et une propriété étendue à valeur unique

Demande

Le premier exemple crée événement et une propriété étendue à valeur unique dans la même opération POST. Outre les propriétés que vous incluriez normalement pour un nouvel événement, le corps de la demande inclut la collection singleValueExtendedProperties qui contient une propriété étendue à valeur unique et les informations suivantes pour la propriété :

  • ID spécifie le type de propriété en tant que String, le GUID et la propriété nommée Fun.
  • valeur spécifie Food comme valeur de la propriété Fun.
POST https://graph.microsoft.com/v1.0/me/events
Content-Type: application/json

{
  "subject": "Celebrate Thanksgiving",
  "body": {
    "contentType": "HTML",
    "content": "Let's get together!"
  },
  "start": {
      "dateTime": "2015-11-26T18:00:00",
      "timeZone": "Pacific Standard Time"
  },
  "end": {
      "dateTime": "2015-11-26T23:00:00",
      "timeZone": "Pacific Standard Time"
  },
  "attendees": [
    {
      "emailAddress": {
        "address": "Terrie@contoso.com",
        "name": "Terrie Barrera"
      },
      "type": "Required"
    }
  ],
  "singleValueExtendedProperties": [
     {
           "id":"String {66f5a359-4659-4830-9070-00040ec6ac6e} Name Fun",
           "value":"Food"
     }
  ]
}

Réponse

Une réponse correcte est indiquée par un code de réponse HTTP 201 Created et inclut le nouvel événement dans le corps de la réponse, semblable à la réponse de créer simplement un événement. La réponse n’inclut pas de propriétés étendues nouvellement créées.

Pour afficher la propriété étendue nouvellement créée, obtenez l’événement développé avec la propriété étendue.

HTTP/1.1 201 Created
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('c71-86a-a0-92-906ba')/events/$entity",
    "@odata.etag": "W/\"oBeN/g==\"",
    "id": "AAMkADI4Yzc5AABVNeEhAAA=",
    "createdDateTime": "2023-06-26T15:46:00.9307807Z",
    "lastModifiedDateTime": "2023-06-26T15:46:02.0775731Z",
    "changeKey": "oBEEg==",
    "categories": [],
    "transactionId": null,
    "originalStartTimeZone": "Pacific Standard Time",
    "originalEndTimeZone": "Pacific Standard Time",
    "iCalUId": "04049ACBF84A7AC7CB34D",
    "reminderMinutesBeforeStart": 15,
    "isReminderOn": true,
    "hasAttachments": false,
    "subject": "Celebrate Thanksgiving",
    "bodyPreview": "Let's get together!",
    "importance": "normal",
    "sensitivity": "normal",
    "isAllDay": false,
    "isCancelled": false,
    "isOrganizer": true,
    "responseRequested": true,
    "seriesMasterId": null,
    "showAs": "busy",
    "type": "singleInstance",
    "webLink": "https://outlook.office365.com/owa/?itemid=AAMkAA%3D&exvsurl=1&path=/calendar/item",
    "onlineMeetingUrl": null,
    "isOnlineMeeting": false,
    "onlineMeetingProvider": "unknown",
    "allowNewTimeProposals": true,
    "occurrenceId": null,
    "isDraft": false,
    "hideAttendees": false,
    "responseStatus": {
        "response": "organizer",
        "time": "0001-01-01T00:00:00Z"
    },
    "body": {
        "contentType": "html",
        "content": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body>Let's get together!</body></html>"
    },
    "start": {
        "dateTime": "2015-11-26T18:00:00.0000000",
        "timeZone": "Pacific Standard Time"
    },
    "end": {
        "dateTime": "2015-11-26T23:00:00.0000000",
        "timeZone": "Pacific Standard Time"
    },
    "location": {
        "displayName": "",
        "locationType": "default",
        "uniqueIdType": "unknown",
        "address": {},
        "coordinates": {}
    },
    "locations": [],
    "recurrence": null,
    "attendees": [
        {
            "type": "required",
            "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
            },
            "emailAddress": {
                "name": "Terrie Barrera",
                "address": "Terrie@contoso.com"
            }
        }
    ],
    "organizer": {
        "emailAddress": {
            "name": "MOD Administrator",
            "address": "admin@contoso.com"
        }
    },
    "onlineMeeting": null
}

Exemple 2 : Créer une propriété étendue à valeur unique pour un message

Demande

Le deuxième exemple crée une propriété étendue à valeur unique pour le message existant spécifié . Cette propriété étendue est le seul élément dans le tableau singleValueExtendedProperties. Le corps de la demande inclut les informations suivantes pour la propriété étendue :

  • ID spécifie le type de propriété en tant que String, le GUID et la propriété nommée Color.
  • valeur spécifie Green comme valeur de la propriété Color.
PATCH https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2_bs88AACHsLqWAAA=
Content-Type: application/json

{
  "singleValueExtendedProperties": [
      {
         "id":"String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color",
         "value":"Green"
      }
    ]
}

Réponse

Une réponse correcte est indiquée par un code de réponse HTTP 200 OK et inclut le message spécifié dans le corps de la réponse, semblable à la réponse de mettre à jour un message. La réponse n’inclut pas la propriété étendue nouvellement créée.

Pour afficher la propriété étendue nouvellement créée, obtenez le message développé avec la propriété étendue.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('3cc-ad3-4b9-9a-54')/messages/$entity",
    "@odata.etag": "W/\"CQAAABTiMty\"",
    "id": "AAMkADQzZ1NzItKbS4P8E6VEAAA3LwToAAA=",
    "createdDateTime": "2023-05-12T15:55:56Z",
    "lastModifiedDateTime": "2023-06-23T17:45:43Z",
    "changeKey": "CQAAAAABTiMty",
    "categories": [],
    "receivedDateTime": "2023-05-12T15:55:57Z",
    "sentDateTime": "2023-05-12T15:55:48Z",
    "hasAttachments": false,
    "internetMessageId": "<odspmicro-PlannerDueDate-06c7f00e-6b5f793846-DispatchToRecipients-PreprocessPayload-r0-SendEmail@59C185B>",
    "subject": "You have upcoming tasks due",
    "bodyPreview": "Hi Alex. You have 2 tasks due.        You have upcoming tasksSubmit your expensesIn the plan  Event Plan        5/19/2023Due in 7 daysSubmit your expensesIn the plan  Event Plan        5/19/2023Due in 7 daysView tasks in  Microsoft To ",
    "importance": "normal",
    "parentFolderId": "AQMkc0BAIptLg-wTpUQAAAIBDAAAAA==",
    "conversationId": "AAQkADQzZmJLgzlRSFD0=",
    "conversationIndex": "AQHIUPQ==",
    "isDeliveryReceiptRequested": null,
    "isReadReceiptRequested": false,
    "isRead": false,
    "isDraft": false,
    "webLink": "https://outlook.office365.com/owa/?ItemID=AAP8E6vsurl=1&viewmodel=ReadMessageItem",
    "inferenceClassification": "focused",
    "body": {
        "contentType": "html",
        "content": "<html aria-hidden=\"true\" role=\"presentation\" height=\"1\" width=\"1\"></html>"
    },
    "sender": {
        "emailAddress": {
            "name": "Microsoft on behalf of your organization",
            "address": "noreply@planner.office365.com"
        }
    },
    "from": {
        "emailAddress": {
            "name": "Microsoft on behalf of your organization",
            "address": "noreply@planner.office365.com"
        }
    },
    "toRecipients": [
        {
            "emailAddress": {
                "name": "Alex Wilber",
                "address": "AlexW@contoso.com"
            }
        }
    ],
    "ccRecipients": [],
    "bccRecipients": [],
    "replyTo": [],
    "flag": {
        "flagStatus": "notFlagged"
    }
}