Получить содержимое вложения из OWA через веб-надстройку Outlook - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь получить содержимое вложения из почтового элемента с помощью вызова API Office.context.mailbox.item.getAttachmentsAsync () из моей надстройки, однако я сталкиваюсь с некоторыми неожиданными результатами ...

В моей надстройке я получаю список всех вложений в почтовом элементе:

var listOfAttachments = item.attachments;
if (listOfAttachments.length > 0) {
    for (i = 0; i < listOfAttachments.length; i++) {
        _att = listOfAttachments[i];
        console.log("Attachment name: " + _att.name);
        console.log("Attachment type: " + _att.attachmentType);
        console.log("Attachment content type: " + _att.contentType);
        console.log("Attachment ID: " + _att.id);
        console.log("string length: " + _att.id.length);
     }

Это отлично работает ... Однако я понял, что идентификатор вложения,длиннее 100 символов (на самом деле 180 символов).А в API-ссылке функции getAttachmentContentAsync () первым параметром является идентификатор вложения, который указывается ссылкой: «Идентификатор вложения, которое вы хотите получить. Максимальная длина строки составляет 100 символов».

Итак, основываясь на этом, я думаю, что определил проблему.Вопрос сейчас в том, как ее решить.Какой идентификатор вложения ожидает этот API?

Спасибо!

Обновление: это код, который я использую для получения содержимого вложения:

var options = { asyncContext: { type: _att.attachmentType } };
item.getAttachmentContentAsync(_att.id, options, function (result) {
            if (result.status == Office.AsyncResultStatus.Succeeded) {
                console.log("Call returned success!");
                var AttachmentContent = result.value; // Get the attachment content
                if (AttachmentContent.format == Office.MailboxEnums.AttachmentContentFormat.Base64) {
                    // handle file attachment
                    console.log("Base64 String: " + AttachmentContent.content);
                }
                else if (result.format == Office.MailboxEnums.AttachmentContentFormat.Eml) {
                    // handle item attachment
                }
                else {
                    // handle cloud attachment  
                }
            } else {
                var err = result.error;
                console.log("Call failed: " + err.name + ": " + err.message);
            }
        });

Ошибкачто я получаю это: Невозможно получить свойство «статус» неопределенной или нулевой ссылки

1016 * для целей поиска неисправностей, я распечатал крепежную ID: AAMkADU4OTU2Mjg4LThiNzktNDY0Yi1hZmE4LWFmMjAzZjczYjIxOQBGAAAAAADiRE + 1naePQ7MPCJEcJqgqBwCgpNXsitDwTY / mc0w2Y / zOAAAAAAEMAACgpNXsitDwTY / mc0w2Y / zOAAARXFqBAAABEgAQAN0M5JhRvPxIoP5KYNYRk54 =

Я прочитал с нескольких страниц, что другой API ожидает немного другой формат идентификатора вложения.Так что я не уверен, является ли это источником проблемы ...

1 Ответ

0 голосов
/ 21 декабря 2018

API getAttachmentContent еще не реализован для OWA.Для объекта с нулевым результатом - это известная проблема.Это было помещено в наше отставание.К сожалению, на данный момент у нас нет сроков.

Также, чтобы ответить на второй вопрос, поскольку вы тестируете OWA, вы можете просто перейти к инструментам разработчика и установить там точку останова для тестирования надстроек ииспользуйте окно консоли для проверки данных переменных в них.

...