Mettre à jour une extension ouverte

Espace de noms: microsoft.graph

Mettez à jour une extension ouverte (objet openTypeExtension ) avec les propriétés dans le corps de la requête :

  • 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 dans 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 ressource instance, 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.

Paramètres du chemin d’accès

Paramètre Type Description
id string Un identificateur unique pour une instance de la collection correspondante. Obligatoire.
extensionId string Cela peut être un nom d’extension qui est un identificateur de texte unique pour une extension ou un nom complet qui concatène l’identificateur de texte unique et le type d’extension. Le nom complet est renvoyé dans la propriété id lorsque vous créez l’extension. Obligatoire.

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 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. Les données dans la charge utile JSON peuvent être des types primitifs ou des tableaux de types primitifs.

Nom Valeur
@odata.type microsoft.graph.openTypeExtension
extensionName % unique_string %

Utilisez cette opération pour stocker des données dans la propriété d’extension open, mettre à jour les données stockées ou supprimer les données existantes. - 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, 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 supprimera. - Pour supprimer des données de toutes les propriétés de l’objet d’extension ouvert, mais conserver l’objet d’extension ouvert, mettez à jour les valeurs des propriétés sur null.

Réponse

Si elle réussit, cette méthode renvoie un code de réponse 200 OK et l’objet openTypeExtension mis à jour.

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"
    ]
}