Namespace: microsoft.graph
Traduzir os identificadores de recursos relacionados ao Outlook entre formatos.
Essa API está disponível nas seguintes implantações de nuvem nacional.
| Serviço global |
Governo dos EUA L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
❌ |
❌ |
✅ |
Permissões
As tabelas a seguir mostram a permissão ou permissões menos privilegiadas necessárias para chamar essa API em cada tipo de recurso com suporte. Siga as práticas recomendadas para solicitar permissões com privilégios mínimos. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
Permissões para traduzir IDs do Exchange para o usuário conectado:
POST /me/translateExchangeIds
| Tipo de permissão |
Permissões menos privilegiadas |
Permissões com privilégios mais elevados |
| Delegado (conta corporativa ou de estudante) |
User.ReadBasic.All |
AgentIdUser.ReadWrite.All, AgentIdUser.ReadWrite.IdentityParentedBy, User.Read, User.Read.All, User.ReadWrite, User.ReadWrite.All |
| Delegado (conta pessoal da Microsoft) |
User.Read |
User.ReadWrite |
| Aplicativo |
Sem suporte. |
Sem suporte. |
Permissões para traduzir IDs do Exchange para um usuário:
POST /users/{id | userPrincipalName}/translateExchangeIds
| Tipo de permissão |
Permissões menos privilegiadas |
Permissões com privilégios mais elevados |
| Delegado (conta corporativa ou de estudante) |
User.ReadBasic.All |
AgentIdUser.ReadWrite.All, AgentIdUser.ReadWrite.IdentityParentedBy, User.Read, User.Read.All, User.ReadWrite, User.ReadWrite.All |
| Delegado (conta pessoal da Microsoft) |
User.Read |
User.ReadWrite |
| Aplicativo |
User.Read.All |
AgentIdUser.ReadWrite.All, AgentIdUser.ReadWrite.IdentityParentedBy, User.ReadWrite.All |
Solicitação HTTP
Para converter IDs do Exchange para o usuário conectado usando permissões delegadas (/me):
POST /me/translateExchangeIds
Para converter IDs do Exchange usando permissões delegadas ou de aplicativo:
POST /users/{id | userPrincipalName}/translateExchangeIds
Corpo da solicitação
| Parâmetro |
Tipo |
Descrição |
| inputIds |
String collection |
Uma coleção de identificadores a serem convertidos. Todos os identificadores da coleção DEVEM ter o mesmo tipo de ID de origem e DEVEM ser para itens na mesma caixa de correio. O tamanho máximo desta coleção é de 1.000 cadeias de caracteres. |
| sourceIdType |
exchangeIdFormat |
O tipo de ID dos identificadores no inputIds parâmetro. |
| targetIdType |
exchangeIdFormat |
O tipo de ID solicitado para o qual converter. |
| Member |
Descrição |
| entryId |
O formato de ID de entrada binária usado por clientes MAPI. |
| ewsId |
O formato de ID usado pelos clientes de Serviços Web do Exchange. |
| immutableEntryId |
O formato de ID imutável compatível com MAPI binário. |
| restId |
O formato de ID padrão usado pelo Microsoft Graph. |
| restImmutableEntryId |
O formato de ID imutável usado pelo Microsoft Graph. |
Os formatos binários (entryId e immutableEntryId) são seguros para URL, codificados em base64. A segurança de URL é implementada modificando a codificação base64 dos dados binários da seguinte maneira:
- Substituir
+ por -
- Substituir
/ por _
- Remover todos os caracteres de preenchimento à direita (
=)
- Adicione um inteiro ao final da cadeia de caracteres indicando quantos caracteres de preenchimento estavam no original (
0, 1, ou 2)
Resposta
Se for bem-sucedido, esse método retornará 200 OK um código de resposta e uma coleção convertIdResult no corpo da resposta.
Exemplo
O exemplo a seguir mostra como converter vários identificadores do formato normal da API REST (restId) para o formato imutável REST (restImmutableEntryId).
Solicitação
Aqui está a solicitação de exemplo.
POST https://graph.microsoft.com/v1.0/me/translateExchangeIds
Content-Type: application/json
{
"inputIds" : [
"{rest-formatted-id-1}",
"{rest-formatted-id-2}"
],
"sourceIdType": "restId",
"targetIdType": "restImmutableEntryId"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Me.TranslateExchangeIds;
using Microsoft.Graph.Models;
var requestBody = new TranslateExchangeIdsPostRequestBody
{
InputIds = new List<string>
{
"{rest-formatted-id-1}",
"{rest-formatted-id-2}",
},
SourceIdType = ExchangeIdFormat.RestId,
TargetIdType = ExchangeIdFormat.RestImmutableEntryId,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.TranslateExchangeIds.PostAsTranslateExchangeIdsPostResponseAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// 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"
graphusers "github.com/microsoftgraph/msgraph-sdk-go/users"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphusers.NewItemTranslateExchangeIdsPostRequestBody()
inputIds := []string {
"{rest-formatted-id-1}",
"{rest-formatted-id-2}",
}
requestBody.SetInputIds(inputIds)
sourceIdType := graphmodels.RESTID_EXCHANGEIDFORMAT
requestBody.SetSourceIdType(&sourceIdType)
targetIdType := graphmodels.RESTIMMUTABLEENTRYID_EXCHANGEIDFORMAT
requestBody.SetTargetIdType(&targetIdType)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
translateExchangeIds, err := graphClient.Me().TranslateExchangeIds().PostAsTranslateExchangeIdsPostResponse(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.users.item.translateexchangeids.TranslateExchangeIdsPostRequestBody translateExchangeIdsPostRequestBody = new com.microsoft.graph.users.item.translateexchangeids.TranslateExchangeIdsPostRequestBody();
LinkedList<String> inputIds = new LinkedList<String>();
inputIds.add("{rest-formatted-id-1}");
inputIds.add("{rest-formatted-id-2}");
translateExchangeIdsPostRequestBody.setInputIds(inputIds);
translateExchangeIdsPostRequestBody.setSourceIdType(ExchangeIdFormat.RestId);
translateExchangeIdsPostRequestBody.setTargetIdType(ExchangeIdFormat.RestImmutableEntryId);
var result = graphClient.me().translateExchangeIds().post(translateExchangeIdsPostRequestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const convertIdResult = {
inputIds: [
'{rest-formatted-id-1}',
'{rest-formatted-id-2}'
],
sourceIdType: 'restId',
targetIdType: 'restImmutableEntryId'
};
await client.api('/me/translateExchangeIds')
.post(convertIdResult);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Users\Item\TranslateExchangeIds\TranslateExchangeIdsPostRequestBody;
use Microsoft\Graph\Generated\Models\ExchangeIdFormat;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new TranslateExchangeIdsPostRequestBody();
$requestBody->setInputIds(['{rest-formatted-id-1}', '{rest-formatted-id-2}', ]);
$requestBody->setSourceIdType(new ExchangeIdFormat('restId'));
$requestBody->setTargetIdType(new ExchangeIdFormat('restImmutableEntryId'));
$result = $graphServiceClient->me()->translateExchangeIds()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.Users.Actions
$params = @{
inputIds = @(
'{rest-formatted-id-1}'
'{rest-formatted-id-2}'
)
sourceIdType = "restId"
targetIdType = "restImmutableEntryId"
}
# A UPN can also be used as -UserId.
Invoke-MgTranslateUserExchangeId -UserId $userId -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.users.item.translate_exchange_ids.translate_exchange_ids_post_request_body import TranslateExchangeIdsPostRequestBody
from msgraph.generated.models.exchange_id_format import ExchangeIdFormat
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = TranslateExchangeIdsPostRequestBody(
input_ids = [
"{rest-formatted-id-1}",
"{rest-formatted-id-2}",
],
source_id_type = ExchangeIdFormat.RestId,
target_id_type = ExchangeIdFormat.RestImmutableEntryId,
)
result = await graph_client.me.translate_exchange_ids.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Aqui está a resposta de exemplo
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"sourceId": "{rest-formatted-id-1}",
"targetId": "{rest-immutable-formatted-id-1}"
},
{
"sourceId": "{rest-formatted-id-2}",
"targetId": "{rest-immutable-formatted-id-2}"
}
]
}