Obtenir openTypeExtension
Espace de noms: microsoft.graph
Importante
Les API sous la version /beta
dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .
Attention
Les applications existantes qui utilisent cette fonctionnalité avec baseTask ou baseTaskList doivent être mises à jour, car l’ensemble d’API de tâches basé sur ces ressources est déconseillé à compter du 31 mai 2022. Cet ensemble d'API cessera de renvoyer des données le 31 août 2022. Utilisez l’ensemble d’API basé sur todoTask.
Obtenez une extension d’ouverture (objet openTypeExtension) identifiée par son nom ou son nom complet.
Le tableau de la section Autorisations répertorie les ressources qui prennent en charge les extensions ouvertes.
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.
Scénario GET | Ressources prises en charge | Corps de la réponse |
---|---|---|
Obtenir une extension spécifique d’une instance de ressource connue. |
Administrative unit baseTask (déconseillé) baseTaskList (déconseillé) device event groupe group event group post message organization personal contact utilisateur todoTask todoTaskList |
Extension d’ouverture uniquement. |
Obtenir une instance de ressource connue développée avec une extension spécifique. | Unité administrative, tâche de base, liste des tâches de base, appareil, événement, groupe, événement de groupe, publication de groupe, message, organization, contact personnel, utilisateur, tâche à faire, liste des tâches. | Instance de ressource développée avec l’extension d’ouverture. |
Rechercher et développer des instances de ressource avec une extension spécifique. | Tâche de base, liste des tâches de base, événement, événement de groupe, publication de groupe, message, contact personnel, tâche à faire, liste de tâches | Instances de ressource développées avec l’extension d’ouverture. |
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 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. 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 |
---|---|---|---|
baseTask (déconseillé) | Tasks.ReadWrite | Tasks.ReadWrite | Non pris en charge |
baseTaskList (déconseillé) | Tasks.ReadWrite | Tasks.ReadWrite | Non pris en charge |
appareil | Directory.Read.All | Non pris en charge | Device.ReadWrite.All |
event | Calendars.Read | Calendars.Read | Calendars.Read |
groupe | Group.Read.All | Non pris en charge | Group.Read.All |
group event | Group.Read.All | Non pris en charge | Non pris en charge |
group post | Group.Read.All | Non pris en charge | Group.Read.All |
message | Mail.Read | Mail.Read | Mail.Read |
organization | User.Read | Non pris en charge | Organization.Read.All |
personal contact | Contacts.Read | Contacts.Read | Contacts.Read |
todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Non pris en charge |
todoTaskList | Tasks.ReadWrite | Tasks.ReadWrite | Non pris en charge |
utilisateur | User.Read | User.Read | User.Read.All |
Requête HTTP
Cette section indique la syntaxe pour chacun des trois scénarios GET
décrits ci-dessus.
Obtenir une extension spécifique dans une instance de ressource connue
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.
GET /administrativeUnits/{administrativeUnitId}/extensions/{extensionId}
GET /devices/{deviceId}/extensions/{extensionId}
GET /users/{Id|userPrincipalName}/events/{eventId}/extensions/{extensionId}
GET /groups/{groupId}/extensions/{extensionId}
GET /groups/{groupId}/events/{eventId}/extensions/{extensionId}
GET /groups/{groupId}/threads/{threadId}/posts/{postId}/extensions/{extensionId}
GET /users/{userId|userPrincipalName}/messages/{messageId}/extensions/{extensionId}
GET /organization/{organizationId}/extensions/{extensionId}
GET /users/{userId|userPrincipalName}/contacts/{contactId}/extensions/{extensionId}
GET /users/{userId|userPrincipalName}/extensions/{extensionId}
GET /users/{userId|userPrincipalName}/todo/lists/{listId}/tasks/{todoTaskId}/extensions/{extensionId}
GET /users/{userId|userPrincipalName}/todo/lists/{listId}/extensions/{extensionId}
GET /users/{userId|userPrincipalName}/tasks/lists/{listId}/tasks/{baseTaskId}/extensions/{extensionId}
GET /users/{userId|userPrincipalName}/tasks/lists/{listId}/extensions/{extensionId}
Obtenir une instance de ressource connue développée avec une extension correspondante
Pour l’événement, l’événement de groupe, la publication de groupe, le message, contact personnel, tâche, les types de ressources de liste des tâches, 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. La réponse inclut la plupart des propriétés de la ressource.
GET /users/{userId|userPrincipalName}/events/{eventId}?$expand=extensions($filter=id eq '{extensionId}')
GET /groups/{groupId}/events/{eventId}?$expand=extensions($filter=id eq '{extensionId}')
GET /groups/{groupId}/threads/{threadId}/posts/{postId}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{userId|userPrincipalName}/messages/{messageId}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{userId|userPrincipalName}/contacts/{contactId}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{userId|userPrincipalName}/todo/lists/{listId}/tasks/{taskId}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{userId|userPrincipalName}/todo/lists/{listId}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{userId|userPrincipalName}/tasks/lists/{listId}/tasks/{taskId}?$expand=extensions($filter=id eq '{extensionId}')
GET /users/{userId|userPrincipalName}/tasks/lists/{listId}?$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 :
GET /devices/{deviceId}?$expand=extensions($filter=id eq '{extensionId}')&$select=id,{property_1},{property_n}
GET /groups/{groupId}?$expand=extensions($filter=id eq '{extensionId}')&$select=id,{property_1},{property_n}
GET /organization/{organizationId}?$expand=extensions($filter=id eq '{extensionId}')&$select=id,{property_1},{property_n}
GET /users/{userId|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 correspondante
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.
GET /users/{userId|userPrincipalName}/events?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /groups/{groupId}/events?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /groups/{groupId}/threads/{threadId}/posts?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /users/{userId|userPrincipalName}/messages?$filter=Extensions/any(f:f/id eq '{extensionId}')&$expand=Extensions($filter=id eq '{extensionId}')
GET /users/{userId|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. 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.
Paramètres du chemin d’accès
Paramètre | Type | Description |
---|---|---|
ID | string | 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. |
extensionId | string | 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. |
Paramètres facultatifs de la requête
Veillez à appliquer le codage URL aux espaces dans la chaîne $filter
.
Parameter | Description | Exemple |
---|---|---|
$filter | Renvoie une extension avec son id correspondant à la valeur de paramètre extensionId . |
Demande 3 |
$filter avec un opérateur | Renvoie les instances d’une collection de ressources qui contiennent une extension avec son id correspondant à la valeur de paramètre extensionId . |
Demande 5 |
$expand | Développe une instance de ressource pour inclure une extension. | Demande 3 et demande 5 |
En-têtes de demande
Nom | Valeur |
---|---|
Autorisation | Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation. |
Corps de la demande
N’indiquez pas le corps de la demande pour cette méthode.
Réponse
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.
Exemple
Demande 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.
Premièrement, par son nom :
GET https://graph.microsoft.com/beta/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Com.Contoso.Referral
Deuxièmement, par son ID (nom complet) :
GET https://graph.microsoft.com/beta/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')
Réponse 1
Voici la réponse pour le premier exemple.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions/$entity",
"@odata.type": "#Microsoft.Graph.OpenTypeExtension",
"@odata.id": "https://graph.microsoft.com/beta/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 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é.
GET https://graph.microsoft.com/beta/groups/f5480dfd-7d77-4d0b-ba2e-3391953cc74a/events/AAMkADVl17IsAAA=/extensions/Com.Contoso.Deal
Réponse 2
Voici la réponse pour le deuxième exemple.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$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"
}
Demande 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.
GET https://graph.microsoft.com/beta/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/?$expand=extensions($filter=id%20eq%20'Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')
Réponse 3
Voici la réponse pour le troisième exemple. Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Me/messages/$entity",
"@odata.id": "https://graph.microsoft.com/beta/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.type": "#Microsoft.Graph.OpenTypeExtension",
"@odata.id": "https://graph.microsoft.com/beta/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 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é.
GET https://graph.microsoft.com/beta/groups/37df2ff0-0de0-4c33-8aee-75289364aef6/threads/AAQkADJizZJpEWwqDHsEpV_KA==/posts/AAMkADJiUg96QZUkA-ICwMubAADDEd7UAAA=/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Estimate
Réponse 4
Voici la réponse pour le quatrième exemple.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$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 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
.
GET https://graph.microsoft.com/beta/me/messages?$filter=Extensions/any(f:f/id%20eq%20'Com.Contoso.Referral')&$expand=Extensions($filter=id%20eq%20'Com.Contoso.Referral')
Réponse 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
.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 200 OK
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Me/messages",
"value": [
{
"@odata.id": "https://graph.microsoft.com/beta/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.type": "#Microsoft.Graph.OpenTypeExtension",
"@odata.id": "https://graph.microsoft.com/beta/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"
}
]
}
]
}