Почему мой метод saveAsync всегда возвращает один и тот же результат?(Office.js - надстройка для Outlook) - PullRequest
0 голосов
/ 23 сентября 2018

В настоящее время я пишу некоторый код как часть надстройки Outlook с библиотекой office-js.

По сути, после нажатия кнопки «Отправить» мое приложение должно сохранить открытое в настоящий момент сообщение как черновик, а затем выполнить вызов Microsoft Graph API, который может отправить сообщение.

Мой код в настоящее время выглядит примерно так на стороне клиента:

    Office.context.mailbox.item.saveAsync(
        async function callback(result) {
            if (result.status === "succeeded") {
                const messageId = result.value

                await axios.post("/api/send", {
                    headers: { "Authorization": "Bearer " + accessToken },
                    data: {
                        messageId
                    }
                });
            }
            else {
                console.log(result.error)
            }
        }
    );

А затем на моем сервере я делаю этот вызов API Graph:

    const graphData = await fetch(
        `https://graph.microsoft.com/v1.0/me/messages/${messageId}/send`,
        {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/x-www-form-urlencoded',
                'Authorization': 'Bearer ' + graphToken,
                'Content-Length': '0'
            }
        }
    );

Thisдо сегодняшнего дня все работало нормально.Однако теперь я вижу, что независимо от того, какое сообщение я нажимаю отправить, я продолжаю видеть один и тот же идентификатор сообщения из моего звонка на Office.context.mailbox.item.saveAsync():

// console.log(messageId)
AAMkAGE4ZWVlNjI1LTk3NjAtNDFmYy1hZDhkLTU3ZWY0ZjJiMDk5YgBGAAAAAACghEgqiSFAQo8v+Kh2wPqEBwDoiTH7R3zxTZ+n2OMFzElyAAAAAAEPAADoiTH7R3zxTZ+n2OMFzElyAAAT/OkjAAA=

Я получаю "Неподдерживаемыйтип сегмента. "ошибка в Microsoft Graph, которая, как я полагаю, связана с тем, что идентификатор сообщения не существует.

Я не уверен, как это могло произойти, но я думаю, что это может иметь какое-то отношение к учетной записи, над которой я сейчас работаю.До вчерашнего дня у меня была бесплатная пробная версия MS Office, срок действия которой истек.Сегодня я снова перезапустил свою подписку, но эта ошибка все еще появляется.

Однако, даже до сегодняшнего дня, я получал непредсказуемое поведение с этим шаблоном.Иногда электронное письмо не отправлялось с первой попытки, без явных ошибок, а в других случаях электронное письмо отправлялось, но электронное письмо не исчезало, оставляя перед пользователем висящий черновик.

Я хотел бы услышать любую помощь или предложения по этому вопросу, потому что это вызывает изрядное количество разочарования!

1 Ответ

0 голосов
/ 24 сентября 2018

Согласно вашему описанию, я предполагаю, что вы хотите отправить eamil с помощью MS Graph API.

Я попытался воспроизвести вашу проблему.Однако я не мог получить сообщение об ошибке, как ваше.

И я просмотрел ваше описание. Я обнаружил некоторую проблему в вашем MessageID,

AAMkAGE4ZWVlNjI1LTk3NjAtNDFmYy1hZDhkLTU3ZWY0ZjJiMDk5YgBGAAAAAACghEgqiSFAQo8v+Kh2wPqEBwDoiTH7R3zxTZ+n2OMFzElyAAAAAAEPAADoiTH7R3zxTZ+n2OMFzElyAAAT/OkjAAA=

Мы можем обнаружить, что в этом MessageID есть символ /,Я думаю, что мы должны проверить, как генерируется MessageID.

...