Obtenir ou définir l’emplacement lors de la composition d’un rendez-vous dans Outlook
L’API JavaScript Office fournit des propriétés et des méthodes permettant de gérer l’emplacement d’un rendez-vous que l’utilisateur compose. Actuellement, deux propriétés fournissent l’emplacement d’un rendez-vous :
- item.location : API de base qui vous permet d’obtenir et de définir l’emplacement.
-
item.enhancedLocation : API améliorée qui vous permet d’obtenir et de définir l’emplacement, et inclut la spécification du type d’emplacement. Le type est
LocationType.Custom
si vous définissez l’emplacement à l’aide deitem.location
.
Le tableau suivant répertorie les API d’emplacement et les modes (par exemple, Compose ou Lecture) où elles sont disponibles.
API | Modes de rendez-vous applicables |
---|---|
item.location | Participant/Lecture |
item.location.getAsync | Organisateur/Compose |
item.location.setAsync | Organisateur/Compose |
item.enhancedLocation.getAsync | Organisateur/Compose, Participant/Lecture |
item.enhancedLocation.addAsync | Organisateur/Compose |
item.enhancedLocation.removeAsync | Organisateur/Compose |
Pour utiliser les méthodes disponibles uniquement pour composer des compléments, configurez le manifeste du complément uniquement pour activer le complément en mode Organisateur/Compose. Pour plus d’informations, voir Créer des compléments Outlook pour composer des formulaires . Les règles d’activation ne sont pas prises en charge dans les compléments qui utilisent un manifeste unifié pour Microsoft 365.
Utiliser l’API enhancedLocation
Vous pouvez utiliser l’API enhancedLocation
pour obtenir et définir l’emplacement d’un rendez-vous. Le champ location prend en charge plusieurs emplacements et, pour chaque emplacement, vous pouvez définir le nom d’affichage, le type et l’adresse e-mail de la salle de conférence (le cas échéant). Consultez LocationType pour connaître les types d’emplacement pris en charge.
Ajouter un emplacement
L’exemple suivant montre comment ajouter un emplacement en appelant addAsync sur 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);
});
}
Obtenir l’emplacement
L’exemple suivant montre comment obtenir l’emplacement en appelant getAsync sur 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);
}
});
}
Remarque
Les groupes de contacts personnels ajoutés en tant qu’emplacements de rendez-vous ne sont pas retournés par la méthode enhancedLocation.getAsync .
Supprimer l’emplacement
L’exemple suivant montre comment supprimer l’emplacement en appelant removeAsync sur 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]);
});
}
Utiliser l’API location
Vous pouvez utiliser l’API location
pour obtenir et définir l’emplacement d’un rendez-vous.
Recherche de l’emplacement
Cette section présente un exemple de code qui obtient et affiche l’emplacement du rendez-vous que compose l’utilisateur.
Pour utiliser item.location.getAsync
, fournissez une fonction de rappel qui vérifie les status et le résultat de l’appel asynchrone. Vous pouvez fournir tous les arguments nécessaires à la fonction de rappel via le asyncContext
paramètre facultatif. Vous pouvez obtenir status, les résultats et toute erreur à l’aide du paramètre asyncResult
de sortie du rappel. Si l’appel asynchrone aboutit, vous pouvez obtenir l’emplacement sous forme de chaîne à l’aide de la propriété 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;
}
Définition de l’emplacement
Cette section présente un exemple de code qui définit l’emplacement du rendez-vous composé par l’utilisateur.
Pour utiliser item.location.setAsync
, spécifiez une chaîne de 255 caractères maximum dans le paramètre de données. Si vous le souhaitez, vous pouvez fournir une fonction de rappel et tous les arguments pour la fonction de rappel dans le asyncContext
paramètre . Vous devez case activée le status, le résultat et tout message d’erreur dans le asyncResult
paramètre de sortie du rappel. Si l’appel asynchrone aboutit, setAsync
insère la chaîne d’emplacement spécifiée sous forme de texte brut, en écrasant tous les emplacements existants pour cet élément.
Remarque
Vous pouvez définir plusieurs emplacements à l’aide d’un point-virgule comme séparateur (par exemple, « Salle de conférence A ; Salle de conférence 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;
}