Просмотр или изменение расположения при создании встречи в Outlook
API JavaScript для Office предоставляет свойства и методы для управления расположением встречи, которую создает пользователь. В настоящее время существует два свойства, которые предоставляют расположение встречи:
- item.location: базовый API, позволяющий получить и задать расположение.
-
item.enhancedLocation: расширенный API, который позволяет получить и задать расположение и включает указание типа расположения. Тип имеет значение ,
LocationType.Custom
если вы задали расположение с помощьюitem.location
.
В следующей таблице перечислены API-интерфейсы расположения и режимы (например, Compose или чтение), где они доступны.
API | Применимые режимы встреч |
---|---|
item.location | Участник/чтение |
item.location.getAsync | Организатор/Compose |
item.location.setAsync | Организатор/Compose |
item.enhancedLocation.getAsync | Организатор/Compose, Участник/чтение |
item.enhancedLocation.addAsync | Организатор/Compose |
item.enhancedLocation.removeAsync | Организатор/Compose |
Чтобы использовать методы, доступные только для создания надстроек, настройте только манифест надстройки для активации надстройки в режиме организатора или Compose. Дополнительные сведения см. в статье Создание надстроек 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;
}
См. также
Office Add-ins