Mettre à jour une extension ouverte

Espace de noms: microsoft.graph

Mettez à jour une extension ouverte (objet openTypeExtension ) sur un type de ressource pris en charge.

  • Si une propriété dans le corps de la requête correspond au nom d’une propriété existante dans l’extension, les données dans l’extension sont mises à jour.
  • Sinon, cette propriété et ses données sont ajoutées à l’extension.

Les données d’une extension peuvent être des types primitifs ou des tableaux de types primitifs.

Consultez le tableau de la section Autorisations pour obtenir la liste des ressources qui prennent en charge les extensions ouvertes.

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 l’extension a été créée et le type d’autorisation (délégué ou application) demandé, l’autorisation spécifiée dans le tableau suivant est la moins privilégiée requise pour appeler cette API. Pour en savoir plus, notamment sur les Mesures de prudence avant de choisir des autorisations plus privilégiées, recherchez ces autorisations dans Autorisations.

Ressource prise en charge Déléguée (compte professionnel ou scolaire) Déléguée (compte Microsoft personnel) Application
appareil Directory.AccessAsUser.All Non pris en charge Device.ReadWrite.All
event Calendars.ReadWrite Calendars.ReadWrite Calendars.ReadWrite
group Group.ReadWrite.All Non pris en charge Group.ReadWrite.All
group event Group.ReadWrite.All Non pris en charge Non pris en charge
group post Group.ReadWrite.All Non pris en charge Group.ReadWrite.All
message Mail.ReadWrite Mail.ReadWrite Mail.ReadWrite
organization Organization.ReadWrite.All Non pris en charge Organization.ReadWrite.All
personal contact Contacts.ReadWrite Contacts.ReadWrite Contacts.ReadWrite
todoTask Tasks.ReadWrite Tasks.ReadWrite Tasks.ReadWrite.All
todoTaskList Tasks.ReadWrite Tasks.ReadWrite Tasks.ReadWrite.All
user User.ReadWrite User.ReadWrite User.ReadWrite.All

Requête HTTP

Dans la demande, identifiez l’instance de la ressource, utilisez la propriété de navigation extensions de cette instance pour identifier l’extension et effectuez une PATCH sur cette instance d’extension.

PATCH /devices/{Id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/events/{id}/extensions/{extensionId}
PATCH /groups/{id}/extensions/{extensionId}
PATCH /groups/{id}/events/{id}/extensions/{extensionId}
PATCH /groups/{id}/threads/{id}/posts/{id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/messages/{id}/extensions/{extensionId}
PATCH /organization/{Id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/contacts/{id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/extensions/{extensionId}
PATCH /users/me/todo/lists/{todoTaskListId}/tasks/{taskId}/extensions/{extensionId}
PATCH /users/me/todo/lists/{todoTaskListId}/extensions/{extensionId}

Note: La syntaxe ci-dessus montre quelques méthodes courantes pour identifier une instance de ressource, afin de mettre à jour une extension dans celle-ci. Toute autre syntaxe qui vous permet d’identifier ces instances de ressources prend en charge la mise à jour des extensions ouvertes dans celles-ci de la même manière.

Voir la section Corps de la demande concernant l’inclusion dans le corps de la demande de données personnalisées à modifier ou à ajouter à cette extension.

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

Dans le corps de la demande, fournissez uniquement les valeurs des propriétés qui doivent être mises à jour. Les propriétés existantes qui ne sont pas incluses dans le corps de la demande conservent leurs valeurs précédentes ou sont recalculées en fonction des modifications apportées à d’autres valeurs de propriété.

Le tableau suivant spécifie les propriétés qui peuvent être mises à jour.

Fournissez un corps JSON d’un objet openTypeExtension, avec les paires nom-valeur requises suivantes et toutes les données personnalisées pour modifier ou ajouter cette extension.

Propriété Type Description
@odata.type Chaîne Doit être #microsoft.graph.openTypeExtension. Obligatoire.
extensionName String Obligatoire si l’ID n’est pas fourni. Modifiable.
id Chaîne Obligatoire si l’ID n’est pas fourni. En lecture seule.

Pour les ressources qui sont des objets d’annuaire (ID Microsoft Entra) :

  • Pour mettre à jour une propriété dans l’objet d’extension ouvert, vous devez spécifier toutes les propriétés dans le corps de la demande . sinon, Microsoft Graph supprime les propriétés non spécifiées.
  • Pour supprimer des données d’une propriété dans l’objet d’extension ouvert, mais conserver la propriété, définissez sa valeur sur null.
  • Pour supprimer une propriété de l’objet d’extension ouvert, ne la transmettez pas dans le corps de la demande PATCH, et Microsoft Graph la supprime.
  • Pour supprimer des données de toutes les propriétés de l’objet d’extension ouvert tout en conservant l’objet d’extension ouvert, mettez à jour les valeurs de toutes les propriétés sur null.

Pour les ressources Microsoft 365 telles que les messages :

  • Vous pouvez spécifier un sous-ensemble des propriétés dans le corps de la demande pour les mettre à jour. Les propriétés omises et leurs valeurs sont conservées.
  • null les valeurs ne sont pas autorisées.

Réponse

Si elle réussit, cette méthode renvoie un 204 No Content code de réponse pour les objets d’annuaire ou un 200 OK code de réponse et un objet openTypeExtension mis à jour pour d’autres ressources.

Exemple

Demande 1

Le premier exemple montre comment mettre à jour une extension dans un message. L’extension est initialement représentée par la charge utile JSON suivante :

{
    "@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"
}

Vous pouvez faire référence à l’extension par son nom :

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

Ou vous pouvez faire référence à l’extension par son nom complet :

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

Vous pouvez utiliser l’un des deux exemples de demande et le corps de la requête suivant pour mettre à jour l’extension ci-dessus en :

  • modifiant companyName en remplaçant Wingtip Toys par Wingtip Toys (USA);
  • modifiant dealValue en remplaçant 500050 par 500100;
  • ajoutant de nouvelles données en tant que propriété personnalisée updated.
{
    "@odata.type": "microsoft.graph.openTypeExtension",
    "extensionName": "Com.Contoso.Referral",
    "companyName": "Wingtip Toys (USA)",
    "dealValue": "500100",
    "expirationDate": "2015-12-03T10:00:00.000Z",
    "updated": "2015-10-29T11:00:00.000Z"
} 

Réponse 1

Voici la réponse qui est la même quelle que soit la méthode utilisée pour faire référence à l’extension.

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')",
    "id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
    "extensionName": "Com.Contoso.Referral",
    "companyName": "Wingtip Toys (USA)",
    "dealValue": 500100,
    "expirationDate": "2015-12-03T10:00:00Z",
    "updated": "2015-10-29T11:00:00.000Z"
}

Demande 2

Le deuxième exemple montre comment mettre à jour une extension dans un billet de groupe. L’extension est initialement représentée par la charge utile JSON suivante, avec une valeur expirationDate de 2015-07-03T13:04:00Z:

{
    "@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",
    "DealValue": 1010100,
    "Strings@odata.type": "#Collection(String)",
    "topPicks": [
        "Employees only",
        "Add spouse or guest",
        "Add family"
    ]
}

Voici la demande et le corps de la requête à modifier en remplaçant expirationDate par 2016-07-30T11:00:00Z:

PATCH 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
Content-type: application/json

{
   "@odata.type": "Microsoft.OutlookServices.OpenTypeExtension",
   "extensionName": "Com.Contoso.Estimate",
   "companyName": "Contoso",
   "expirationDate": "2016-07-30T11:00:00.000Z",
   "DealValue": 1010100,
   "topPicks": [
       "Employees only",
       "Add spouse or guest",
       "Add family"
    ]
}

Réponse 2

Voici la réponse du deuxième exemple qui montre le expirationDate mis à jour dans l’extension.

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": "2016-07-30T11:00:00Z",
    "DealValue": 1010100,
    "Strings@odata.type": "#Collection(String)",
    "topPicks": [
        "Employees only",
        "Add spouse or guest",
        "Add family"
    ]
}