Outlook Web добавить в addHandlerAsync ошибка 5001 при регистрации функций - PullRequest
0 голосов
/ 18 сентября 2018

Я работал с различными прототипами для новой надстройки Outlook Web, и все они работали, как предполагалось / ожидалось, однако сегодня мой код для регистрации Office.EventType.ItemChanged перестал работать, и я не могу отработатьпочему.

Захват ошибки возвращает общий OSF.DDA.Error "An internal error has occurred." code: 5001, как показано ниже:

error: OSF.DDA.Error {
    name: "Internal Error",
    message: "An internal error has occurred.",
    code: 5001 } status: "failed"

Способ, которым я пытаюсь это настроить, приведен ниже и вызывается из конструктора верхнего уровня.компонент уровня React:

begin snippet: js hide: false console: true babel: false 

язык: lang-js

Office.initialize = () => {    
    // Handle changing selected email - This is where the error generated
    Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, this.itemChanged, this.handleFailedChange);

    // Handle authentication - This is working perfectly
    Office.context.mailbox.getUserIdentityTokenAsync(this.callBack);

    this.setState({
        ...this.state,
        isOfficeInitialized: true,
    });
};

Ошибка возникает при вызове addHandlerAsync и щелчке между сообщениями электронной почты, а затем не может вызвать событие, getUserIdentityTokenAsync()метод вызывается и работает, так как надстройка аутентифицируется должным образом, поэтому ошибка не препятствует выполнению.

Я попытался переместить вызов Office.initialize из конструктора, но это не помогло решить проблемув дополнение к усложнению отслеживания состояния isOfficeInitalized, на которое я полагаюсь, чтобы убедиться, что все готово.

Код - ReactJS и мыв TypeScript для обеспечения кодирования.Как уже упоминалось выше, у меня все остальное работает, включая загрузку выбранного почтового элемента при первом открытии надстройки - я извлекаю из нее адреса субъекта, отправителя и Cc - так что я знаю, что файл Office.js работает и работаеткак положено.

Любая помощь будет отличной, заранее спасибо!

РЕДАКТИРОВАТЬ - Решение:

Так что после публикации и потратить еще немного временипытаясь заставить это работать, я проверил файл manifest.xml ... оказывается, что метод addHandlerAsync доступен только после API 1.5, а минимальная версия в моем файле была 1.3, установив DefaultMinVersion = "1.5", это решило это:

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
      <Requirements>
        <bt:Sets DefaultMinVersion="1.5">
          <bt:Set Name="Mailbox" />
        </bt:Sets>
      </Requirements>

1 Ответ

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

Итак, после публикации этого сообщения и потратив немного больше времени на попытки заставить его работать, я проверил файл manifest.xml ... оказалось, что метод addHandlerAsync доступен только после API 1.5, а минимальная версия в моем файле была 1.3установка DefaultMinVersion = "1.5" разрешает это:

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
      <Requirements>
        <bt:Sets DefaultMinVersion="1.5">
          <bt:Set Name="Mailbox" />
        </bt:Sets>
      </Requirements>
...