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.
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.
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.
Fournissez un organisme JSON de chaque objet singleValueLegacyExtendedProperty dans la propriété de la collection singleValueExtendedProperties de l’instance de la ressource.
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.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Event
{
Subject = "Celebrate Thanksgiving",
Body = new ItemBody
{
ContentType = BodyType.Html,
Content = "Let's get together!",
},
Start = new DateTimeTimeZone
{
DateTime = "2015-11-26T18:00:00",
TimeZone = "Pacific Standard Time",
},
End = new DateTimeTimeZone
{
DateTime = "2015-11-26T23:00:00",
TimeZone = "Pacific Standard Time",
},
Attendees = new List<Attendee>
{
new Attendee
{
EmailAddress = new EmailAddress
{
Address = "Terrie@contoso.com",
Name = "Terrie Barrera",
},
Type = AttendeeType.Required,
},
},
SingleValueExtendedProperties = new List<SingleValueLegacyExtendedProperty>
{
new SingleValueLegacyExtendedProperty
{
Id = "String {66f5a359-4659-4830-9070-00040ec6ac6e} Name Fun",
Value = "Food",
},
},
};
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Events.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Event event = new Event();
event.setSubject("Celebrate Thanksgiving");
ItemBody body = new ItemBody();
body.setContentType(BodyType.Html);
body.setContent("Let's get together!");
event.setBody(body);
DateTimeTimeZone start = new DateTimeTimeZone();
start.setDateTime("2015-11-26T18:00:00");
start.setTimeZone("Pacific Standard Time");
event.setStart(start);
DateTimeTimeZone end = new DateTimeTimeZone();
end.setDateTime("2015-11-26T23:00:00");
end.setTimeZone("Pacific Standard Time");
event.setEnd(end);
LinkedList<Attendee> attendees = new LinkedList<Attendee>();
Attendee attendee = new Attendee();
EmailAddress emailAddress = new EmailAddress();
emailAddress.setAddress("Terrie@contoso.com");
emailAddress.setName("Terrie Barrera");
attendee.setEmailAddress(emailAddress);
attendee.setType(AttendeeType.Required);
attendees.add(attendee);
event.setAttendees(attendees);
LinkedList<SingleValueLegacyExtendedProperty> singleValueExtendedProperties = new LinkedList<SingleValueLegacyExtendedProperty>();
SingleValueLegacyExtendedProperty singleValueLegacyExtendedProperty = new SingleValueLegacyExtendedProperty();
singleValueLegacyExtendedProperty.setId("String {66f5a359-4659-4830-9070-00040ec6ac6e} Name Fun");
singleValueLegacyExtendedProperty.setValue("Food");
singleValueExtendedProperties.add(singleValueLegacyExtendedProperty);
event.setSingleValueExtendedProperties(singleValueExtendedProperties);
Event result = graphClient.me().events().post(event);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Event;
use Microsoft\Graph\Generated\Models\ItemBody;
use Microsoft\Graph\Generated\Models\BodyType;
use Microsoft\Graph\Generated\Models\DateTimeTimeZone;
use Microsoft\Graph\Generated\Models\Attendee;
use Microsoft\Graph\Generated\Models\EmailAddress;
use Microsoft\Graph\Generated\Models\AttendeeType;
use Microsoft\Graph\Generated\Models\SingleValueLegacyExtendedProperty;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Event();
$requestBody->setSubject('Celebrate Thanksgiving');
$body = new ItemBody();
$body->setContentType(new BodyType('hTML'));
$body->setContent('Let\'s get together!');
$requestBody->setBody($body);
$start = new DateTimeTimeZone();
$start->setDateTime('2015-11-26T18:00:00');
$start->setTimeZone('Pacific Standard Time');
$requestBody->setStart($start);
$end = new DateTimeTimeZone();
$end->setDateTime('2015-11-26T23:00:00');
$end->setTimeZone('Pacific Standard Time');
$requestBody->setEnd($end);
$attendeesAttendee1 = new Attendee();
$attendeesAttendee1EmailAddress = new EmailAddress();
$attendeesAttendee1EmailAddress->setAddress('Terrie@contoso.com');
$attendeesAttendee1EmailAddress->setName('Terrie Barrera');
$attendeesAttendee1->setEmailAddress($attendeesAttendee1EmailAddress);
$attendeesAttendee1->setType(new AttendeeType('required'));
$attendeesArray []= $attendeesAttendee1;
$requestBody->setAttendees($attendeesArray);
$singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1 = new SingleValueLegacyExtendedProperty();
$singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1->setId('String {66f5a359-4659-4830-9070-00040ec6ac6e} Name Fun');
$singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1->setValue('Food');
$singleValueExtendedPropertiesArray []= $singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1;
$requestBody->setSingleValueExtendedProperties($singleValueExtendedPropertiesArray);
$result = $graphServiceClient->me()->events()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.event import Event
from msgraph.generated.models.item_body import ItemBody
from msgraph.generated.models.body_type import BodyType
from msgraph.generated.models.date_time_time_zone import DateTimeTimeZone
from msgraph.generated.models.attendee import Attendee
from msgraph.generated.models.email_address import EmailAddress
from msgraph.generated.models.attendee_type import AttendeeType
from msgraph.generated.models.single_value_legacy_extended_property import SingleValueLegacyExtendedProperty
# To initialize your graph_client, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Event(
subject = "Celebrate Thanksgiving",
body = ItemBody(
content_type = BodyType.Html,
content = "Let's get together!",
),
start = DateTimeTimeZone(
date_time = "2015-11-26T18:00:00",
time_zone = "Pacific Standard Time",
),
end = DateTimeTimeZone(
date_time = "2015-11-26T23:00:00",
time_zone = "Pacific Standard Time",
),
attendees = [
Attendee(
email_address = EmailAddress(
address = "Terrie@contoso.com",
name = "Terrie Barrera",
),
type = AttendeeType.Required,
),
],
single_value_extended_properties = [
SingleValueLegacyExtendedProperty(
id = "String {66f5a359-4659-4830-9070-00040ec6ac6e} Name Fun",
value = "Food",
),
],
)
result = await graph_client.me.events.post(request_body)
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.
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.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Message
{
SingleValueExtendedProperties = new List<SingleValueLegacyExtendedProperty>
{
new SingleValueLegacyExtendedProperty
{
Id = "String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color",
Value = "Green",
},
},
};
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Messages["{message-id}"].PatchAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewMessage()
singleValueLegacyExtendedProperty := graphmodels.NewSingleValueLegacyExtendedProperty()
id := "String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color"
singleValueLegacyExtendedProperty.SetId(&id)
value := "Green"
singleValueLegacyExtendedProperty.SetValue(&value)
singleValueExtendedProperties := []graphmodels.SingleValueLegacyExtendedPropertyable {
singleValueLegacyExtendedProperty,
}
requestBody.SetSingleValueExtendedProperties(singleValueExtendedProperties)
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
messages, err := graphClient.Me().Messages().ByMessageId("message-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Message message = new Message();
LinkedList<SingleValueLegacyExtendedProperty> singleValueExtendedProperties = new LinkedList<SingleValueLegacyExtendedProperty>();
SingleValueLegacyExtendedProperty singleValueLegacyExtendedProperty = new SingleValueLegacyExtendedProperty();
singleValueLegacyExtendedProperty.setId("String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color");
singleValueLegacyExtendedProperty.setValue("Green");
singleValueExtendedProperties.add(singleValueLegacyExtendedProperty);
message.setSingleValueExtendedProperties(singleValueExtendedProperties);
Message result = graphClient.me().messages().byMessageId("{message-id}").patch(message);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Message;
use Microsoft\Graph\Generated\Models\SingleValueLegacyExtendedProperty;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Message();
$singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1 = new SingleValueLegacyExtendedProperty();
$singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1->setId('String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color');
$singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1->setValue('Green');
$singleValueExtendedPropertiesArray []= $singleValueExtendedPropertiesSingleValueLegacyExtendedProperty1;
$requestBody->setSingleValueExtendedProperties($singleValueExtendedPropertiesArray);
$result = $graphServiceClient->me()->messages()->byMessageId('message-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Mail
$params = @{
singleValueExtendedProperties = @(
@{
id = "String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color"
value = "Green"
}
)
}
# A UPN can also be used as -UserId.
Update-MgUserMessage -UserId $userId -MessageId $messageId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.message import Message
from msgraph.generated.models.single_value_legacy_extended_property import SingleValueLegacyExtendedProperty
# To initialize your graph_client, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Message(
single_value_extended_properties = [
SingleValueLegacyExtendedProperty(
id = "String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color",
value = "Green",
),
],
)
result = await graph_client.me.messages.by_message_id('message-id').patch(request_body)
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.