Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Namespace: microsoft.graph
Importante
As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.
Cuidado
As aplicações existentes que utilizam esta funcionalidade com baseTask ou baseTaskList devem ser atualizadas, uma vez que o conjunto de API a fazer incorporado nestes recursos é preterido a partir de 31 de maio de 2022. Esse conjunto de API deixará de retornar dados em 31 de agosto de 2022. Utilize o conjunto de API criado no todoTask.
Atualize uma extensão aberta (objeto openTypeExtension ) num tipo de recurso suportado.
- Se uma propriedade no corpo da solicitação corresponder ao nome de uma propriedade existente na extensão, os dados na extensão serão atualizados.
- Caso contrário, essa propriedade e os respetivos dados são adicionados à extensão.
Os dados numa extensão podem ser tipos primitivos ou matrizes de tipos primitivos. A operação comporta-se de forma diferente para recursos que são objetos de diretório vs. outros recursos.
Para obter a lista de recursos que suportam extensões abertas, consulte a tabela na secção Permissões .
Esta API está disponível nas seguintes implementações de cloud nacionais.
| Serviço global | US Government L4 | US Government L5 (DOD) | China operada pela 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Permissões
Dependendo do recurso no qual a extensão foi criada e do tipo de permissão (delegado ou aplicação) pedido, a permissão especificada na tabela seguinte é o menor privilégio necessário para chamar esta API. Para saber mais, incluindo tomar cuidado antes de escolher as permissões mais privilegiadas, pesquise as seguintes permissões em Permissões.
| Recurso com suporte | Delegada (conta corporativa ou de estudante) | Delegada (conta pessoal da Microsoft) | Application |
|---|---|---|---|
| device | Directory.AccessAsUser.All | Sem suporte. | Device.ReadWrite.All |
| driveItem | Files.ReadWrite | Files.ReadWrite | Sem suporte. |
| evento | Calendars.ReadWrite | Calendars.ReadWrite | Calendars.ReadWrite |
| grupo | Group.ReadWrite.All | Sem suporte. | Group.ReadWrite.All |
| evento de grupo | Group.ReadWrite.All | Sem suporte. | Sem suporte. |
| postagem de grupo | Group.ReadWrite.All | Sem suporte. | Group.ReadWrite.All |
| mensagem | Mail.ReadWrite | Mail.ReadWrite | Mail.ReadWrite |
| organization | Organization.ReadWrite.All | Sem suporte. | Organization.ReadWrite.All |
| contato pessoal | Contacts.ReadWrite | Contacts.ReadWrite | Contacts.ReadWrite |
| site | Sites.ReadWrite.All | Sem suporte. | Sem suporte. |
| todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Sem suporte. |
| todoTasklist | Tasks.ReadWrite | Tasks.ReadWrite | Sem suporte. |
| user | User.ReadWrite | Sem suporte. | User.ReadWrite.All |
| baseTask (preterido) | Tasks.ReadWrite | Tasks.ReadWrite | Sem suporte. |
| baseTasklist (preterido) | Tasks.ReadWrite | Tasks.ReadWrite | Sem suporte. |
Solicitação HTTP
Na solicitação, identifique a instância de recurso, use a propriedade de navegação extensions dessa instância para identificar a extensão e faça um PATCH nessa instância de extensão.
PATCH /administrativeUnits/{administrativeUnitId}/extensions/{extensionId}
PATCH /devices/{deviceId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/events/{eventId}/extensions/{extensionId}
PATCH /groups/{groupId}/extensions/{extensionId}
PATCH /groups/{groupId}/events/{eventId}/extensions/{extensionId}
PATCH /groups/{groupId}/threads/{threadId}/posts/{postId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/messages/{messageId}/extensions/{extensionId}
PATCH /organization/{organizationId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/contacts/{contactId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/extensions/{extensionId}
PATCH /users/me/todo/lists/{listId}/tasks/{taskId}/extensions/{extensionId}
PATCH /users/me/todo/lists/{listId}/extensions/{extensionId}
PATCH /users/me/tasks/lists/{listId}/tasks/{taskId}/extensions/{extensionId}
PATCH /users/me/tasks/lists/{listId}/extensions/{extensionId}
PATCH /drive/items/{itemId}/extensions/{extensionId}
PATCH /sites/{siteId}/extensions/{extensionId}
Nota: A sintaxe acima mostra algumas formas comuns de identificar uma instância de recurso para atualizar uma extensão na mesma. Todas as outras sintaxes que lhe permitem identificar estas instâncias de recursos suportam a atualização de extensões abertas nas mesmas de forma semelhante.
Confira a seção Solicitar corpo sobre como incluir no corpo de solicitação dados personalizados para alterar ou adicionar a essa extensão.
Cabeçalhos de solicitação
| Nome | Valor |
|---|---|
| Autorização | {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-Type | application/json |
Corpo da solicitação
No corpo do pedido, forneça apenas os valores das propriedades a atualizar. As propriedades existentes que não estão incluídas no corpo do pedido mantêm os valores anteriores ou são recalculadas com base em alterações a outros valores de propriedade.
A tabela a seguir especifica as propriedades que podem ser atualizadas.
Forneça um corpo JSON de um objeto openTypeExtension, com os seguintes pares de nome e valor obrigatórios e os dados personalizados para alterar ou adicionar a essa extensão.
| Propriedade | Tipo | Descrição |
|---|---|---|
| @odata.type | Cadeia de caracteres | Deve ser #microsoft.graph.openTypeExtension. Obrigatório. |
| extensionName | String | Necessário se o ID não for fornecido. Atualizável. |
| id | Cadeia de caracteres | Necessário se o ID não for fornecido. Somente leitura. |
Para recursos que são objetos de diretório (Microsoft Entra ID):
- Para atualizar qualquer propriedade no objeto de extensão aberta, tem de especificar todas as propriedades no corpo do pedido; caso contrário, o Microsoft Graph elimina as propriedades não especificadas.
- Para eliminar dados de uma propriedade no objeto de extensão aberto, mas manter a propriedade, defina o respetivo valor como
null. - Para eliminar uma propriedade do objeto de extensão aberta, não a transmita no corpo do pedido PATCH e o Microsoft Graph elimina-a.
- Para eliminar dados de todas as propriedades no objeto de extensão aberto, mas manter o objeto de extensão aberto, atualize os valores de todas as propriedades para
null.
Para recursos do Microsoft 365, como mensagens:
- Pode especificar um subconjunto das propriedades no corpo do pedido para as atualizar. As propriedades omitidas e os respetivos valores são retidos.
-
nullnão são permitidos valores.
Resposta
Se for bem-sucedido, este método devolve um 204 No Content código de resposta para objetos de diretório ou um 200 OK código de resposta e um objeto openTypeExtension atualizado para outros recursos.
Exemplo
Solicitação 1
O primeiro exemplo mostra como atualizar uma extensão de uma mensagem. A extensão é representada inicialmente pela seguinte carga 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"
}
Você pode fazer referência à extensão por seu nome:
PATCH https://graph.microsoft.com/beta/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Com.Contoso.Referral
Ou você pode fazer referência à extensão por seu nome totalmente qualificado:
PATCH https://graph.microsoft.com/beta/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral
Você pode usar o exemplo de solicitação e o seguinte corpo de solicitação para atualizar a extensão acima da seguinte forma:
- Alterando
companyNamedeWingtip ToysparaWingtip Toys (USA) - Alterando
dealValuede500050para500100 - Adicionar novos dados como a propriedade personalizada
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"
}
Resposta 1
Aqui está a resposta que é a mesma, independentemente da maneira usada para fazer referência à extensão.
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')",
"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"
}
Solicitação 2
O segundo exemplo mostra como atualizar uma extensão em uma postagem de grupo. A extensão é representada inicialmente pela seguinte carga JSON, com um valor expirationDate de 2015-07-03T13:04:00Z:
{
"@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",
"DealValue": 1010100,
"Strings@odata.type": "#Collection(String)",
"topPicks": [
"Employees only",
"Add spouse or guest",
"Add family"
]
}
A seguir estão a solicitação e o corpo da solicitação para alterar o expirationDate para 2016-07-30T11:00:00Z:
PATCH https://graph.microsoft.com/beta/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"
]
}
Resposta 2
Aqui está a resposta do segundo exemplo, que mostra o expirationDate atualizado na extensão.
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": "2016-07-30T11:00:00Z",
"DealValue": 1010100,
"Strings@odata.type": "#Collection(String)",
"topPicks": [
"Employees only",
"Add spouse or guest",
"Add family"
]
}
Solicitação 3
O exemplo seguinte mostra como atualizar uma extensão aberta num driveItem.
PATCH https://graph.microsoft.com/beta/drive/items/01FWCEC553UUOHTOAGBVE2IXBQTIZY3JZQ/extensions/Com.Contoso.Estimate
Content-type: application/json
{
"extensionName": "newExtensionName",
"myCustomString": "Contoso data",
"myCustomBool": false
}
Resposta 3
O exemplo seguinte mostra a resposta que inclui o extensionName atualizado na extensão.
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "extensionId",
"extensionName": "newExtensionName",
"myCustomString": "Contoso data",
"myCustomBool": false
}
Solicitação 4
O exemplo seguinte mostra como atualizar uma extensão aberta num site.
PATCH https://graph.microsoft.com/beta/sites/8f52f9ad-4f4f-4739-b682-7c0283207937/extensions/Com.Contoso.Estimate
Content-type: application/json
{
"extensionName": "newExtensionName",
"myCustomString": "Contoso data",
"myCustomBool": false
}
Resposta 4
O exemplo seguinte mostra a resposta que inclui o extensionName atualizado na extensão.
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "extensionId",
"extensionName": "newExtensionName",
"myCustomString": "Contoso data",
"myCustomBool": false
}