Просмотр или изменение расположения при создании встречи в Outlook

API JavaScript для Office предоставляет свойства и методы для управления расположением встречи, которую создает пользователь. В настоящее время существует два свойства, которые предоставляют расположение встречи:

  • item.location: базовый API, позволяющий получить и задать расположение.
  • item.enhancedLocation: расширенный API, который позволяет получить и задать расположение и включает указание типа расположения. Тип имеет значение , LocationType.Custom если вы задали расположение с помощью item.location.

В следующей таблице перечислены API-интерфейсы расположения и режимы (т. е. Создание или Чтение), где они доступны.

API Применимые режимы встреч
item.location Участник/чтение
item.location.getAsync Организатор или создание
item.location.setAsync Организатор или создание
item.enhancedLocation.getAsync Организатор или создание,
Участник/чтение
item.enhancedLocation.addAsync Организатор или создание
item.enhancedLocation.removeAsync Организатор или создание

Чтобы использовать методы, доступные только для создания надстроек, настройте XML-манифест надстройки для активации надстройки в режиме организатора или создания. Дополнительные сведения см. в статье Создание надстроек Outlook для форм создания . Правила активации не поддерживаются в надстройках, использующих унифицированный манифест для Microsoft 365 (предварительная версия).

enhancedLocation Использование API

С помощью enhancedLocation API можно получить и задать расположение встречи. Поле расположение поддерживает несколько расположений. Для каждого расположения можно задать отображаемое имя, тип и адрес электронной почты конференц-зала (если применимо). Поддерживаемые типы расположений см. в разделе LocationType .

Добавление расположения

В следующем примере показано, как добавить расположение путем вызова addAsync в mailbox.item.enhancedLocation.

let item;
const locations = [
    {
        "id": "Contoso",
        "type": Office.MailboxEnums.LocationType.Custom
    }
];

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Check for the DOM to load using the jQuery ready method.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Add to the location of the item being composed.
        item.enhancedLocation.addAsync(locations);
    });
}

Получение расположения

В следующем примере показано, как получить расположение, вызвав метод getAsync в mailbox.item.enhancedLocation.

let item;

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Checks for the DOM to load using the jQuery ready method.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Get the location of the item being composed.
        item.enhancedLocation.getAsync(callbackFunction);
    });
}

function callbackFunction(asyncResult) {
    asyncResult.value.forEach(function (place) {
        console.log("Display name: " + place.displayName);
        console.log("Type: " + place.locationIdentifier.type);
        if (place.locationIdentifier.type === Office.MailboxEnums.LocationType.Room) {
            console.log("Email address: " + place.emailAddress);
        }
    });
}

Примечание.

Личные группы контактов , добавленные в качестве расположений встреч, не возвращаются методом enhancedLocation.getAsync .

Удалить расположение

В следующем примере показано, как удалить расположение, вызвав метод removeAsync в mailbox.item.enhancedLocation.

let item;

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Checks for the DOM to load using the jQuery ready method.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Get the location of the item being composed.
        item.enhancedLocation.getAsync(callbackFunction);
    });
}

function callbackFunction(asyncResult) {
    asyncResult.value.forEach(function (currentValue) {
        // Remove each location from the item being composed.
        item.enhancedLocation.removeAsync([currentValue.locationIdentifier]);
    });
}

location Использование API

С помощью location API можно получить и задать расположение встречи.

Получение места проведения

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

Чтобы использовать item.location.getAsync, предоставьте функцию обратного вызова, которая проверяет состояние и результат асинхронного вызова. Вы можете указать любые необходимые аргументы для функции обратного вызова с помощью необязательного asyncContext параметра. Состояние, результаты и любую ошибку можно получить с помощью выходного параметра asyncResult обратного вызова. Если асинхронный вызов успешно выполнен, вы можете получить место проведения в строковом формате с помощью свойства AsyncResult.value.

let item;

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Checks for the DOM to load using the jQuery ready method.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Get the location of the item being composed.
        getLocation();
    });
}

// Get the location of the item that the user is composing.
function getLocation() {
    item.location.getAsync(
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed){
                write(asyncResult.error.message);
            }
            else {
                // Successfully got the location, display it.
                write ('The location is: ' + asyncResult.value);
            }
        });
}

// Write to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message;
}

Установка места проведения

В этом разделе показан пример кода, который устанавливает место проведения создаваемой пользователем встречи.

Чтобы использовать метод item.location.setAsync, укажите строку длиной до 255 символов в параметре data. При необходимости можно указать функцию обратного вызова и любые аргументы для функции обратного вызова в параметре asyncContext . Необходимо проверка состояние, результат и любое сообщение об ошибке в выходном asyncResult параметре обратного вызова. Если асинхронный вызов успешно выполнен, setAsync вставляет указанную строку в виде обычного текста, заменяя существующее место проведения.

Примечание.

Можно задать несколько расположений, используя точку с запятой в качестве разделителя (например, "Конференц-зал A; Конференц-зал B').

let item;

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Check for the DOM to load using the jQuery ready method.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Set the location of the item being composed.
        setLocation();
    });
}

// Set the location of the item that the user is composing.
function setLocation() {
    item.location.setAsync(
        'Conference room A',
        { asyncContext: { var1: 1, var2: 2 } },
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed){
                write(asyncResult.error.message);
            }
            else {
                // Successfully set the location.
                // Do whatever is appropriate for your scenario,
                // using the arguments var1 and var2 as applicable.
            }
        });
}

// Write to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message;
}

См. также