Я пытаюсь преобразовать EwsId
в RestId
или RestImmutableEntryId
, используя бета-версию Microsoft Graph.
Он прекрасно работает для конвертации RestId
с в RestImmutableEntryId
с, но пока не получится конвертировать из EwsId
.Документация по понятным причинам не является достаточной в данный момент, поскольку она находится в бета-версии, но Я нашел некоторую документацию , в которой говорится, что это возможно:
Примечание: Вы также можете использовать translateExchangeIds
для переноса приложений веб-служб Exchange в Microsoft Graph ".
Что я сделал, так это извлек Id
из файла .msg
и преобразовал его вСтрока Base64 и отправил запрос на преобразование:
var client = new GraphServiceClient(etc..);
var messageId = Convert.ToBase64String(
System.Text.Encoding.UTF8.GetBytes("<someId@something.prod.outlook.com>")
);
var req = client
.Me
.TranslateExchangeIds(new [] { messageId },
ExchangeIdFormat.RestImmutableEntryId,
ExchangeIdFormat.EwsId);
var translateExchangeIdsCollectionPage = await req.Request().PostAsync();
Я ожидаю получить ConvertIdResult
назад, но вместо этого я получаю Microsoft.Graph.GenericError
"[IdConverter:: IsPublicFolder] Неверный идентификатор сжатия "`
Мне не удалось найти какую-либо документацию, связанную с этой ошибкой, и что делать, чтобы исправить ее. Я не эксперт по Outlook, поэтомунасколько я знаю, я использую неправильный идентификатор или что-то в этом роде.