Compléments Office avec le manifeste d’application unifié pour Microsoft 365 (préversion)

Cet article présente le manifeste d’application unifié pour Microsoft 365 en préversion. Il suppose que vous êtes familiarisé avec le manifeste des compléments Office.

Conseil

Microsoft apporte un certain nombre d’améliorations à la plateforme de développement Microsoft 365. Ces améliorations offrent une cohérence accrue dans le développement, le déploiement, l’installation et l’administration de tous les types d’extensions de Microsoft 365, y compris les compléments Office. Ces modifications sont compatibles avec les compléments existants.

Une amélioration importante sur laquelle nous travaillons est la possibilité de créer une unité de distribution unique pour toutes vos extensions Microsoft 365 (Applications Teams) en utilisant le même format de manifeste et le même schéma, basé sur le manifeste d’application unifié au format JSON pour Microsoft 365.

Remarque

Toute extension d’une partie de la plateforme Microsoft 365 est désormais appelée « Application Teams », même si elle n’étend pas l’application Teams elle-même.

Nous avons fait un premier pas important vers ces objectifs en vous permettant de créer des compléments Outlook, exécutés sur Windows uniquement, avec un manifeste unifié pour Microsoft 365.

Remarque

  • Le manifeste unifié est disponible en préversion et est susceptible d’être modifié en fonction des commentaires. Nous encourageons les développeurs de compléments expérimentés à l’expérimenter. Le manifeste unifié ne doit pas être utilisé dans les compléments de production.
  • La préversion du manifeste unifié prend uniquement en charge les compléments Outlook et uniquement dans Office téléchargés à partir d’un abonnement Microsoft 365 et installés sur Windows. Nous travaillons à l’extension de la prise en charge à Excel, PowerPoint et Word, ainsi qu’à d’autres plateformes.
  • Le manifeste unifié nécessite Office version 2304 (build 16320.00000) ou ultérieure. Votre canal d’abonnement Microsoft 365 doit être « Bêta ».

Conseil

Vous êtes prêt à commencer à utiliser le manifeste unifié en préversion ? Commencez par Créer un complément Outlook avec le manifeste unifié pour Microsoft 365 (préversion).

Propriétés clés du manifeste unifié

La documentation de référence main pour la préversion du manifeste d’application unifiée se trouve dans Schéma du manifeste d’application pour les développeurs en préversion publique pour Teams. Cet article fournit des informations sur les propriétés critiques du manifeste de base, mais ne peut pas inclure de documentation sur la propriété « extensions », qui est la propriété où les compléments Office sont configurés dans le manifeste unifié. Par conséquent, dans cet article, nous fournissons une brève description de la signification des propriétés de base lorsque l’application Teams est (ou inclut) un complément Office. Ceci est suivi d’une documentation de base pour la propriété « extensions » et ses propriétés descendantes. Il existe un exemple de manifeste complet pour un complément dans Exemple de manifeste unifié en préversion.

Propriétés de base

Chacune des propriétés de base répertoriées dans le tableau suivant contient une documentation plus complète dans Schéma de manifeste d’application développeur public pour Teams. Les propriétés de base non incluses dans ce tableau n’ont aucune signification pour les compléments Office.

Propriété JSON Objectif
« $schema » Identifie le schéma de manifeste.
« manifestVersion » Version du schéma de manifeste.
"id" GUID de l’application/complément Teams.
« version » Version de l’application/complément Teams.
« nom » Noms courts et longs publics de l’application/du complément Teams. Le nom court apparaît en haut du volet Office d’un complément.
« description » Descriptions courtes et longues publiques de l’application/complément Teams.
« développeur » Informations sur le développeur de l’application/complément Teams.
« localizationInfo » Configure les paramètres régionaux par défaut et les autres paramètres régionaux pris en charge.
« validDomains » Consultez Spécifier des domaines sécurisés.
« webApplicationInfo » Identifie l’application web de l’application/complément Teams telle qu’elle est connue dans Azure Active Directory.
« autorisation » Identifie les autorisations Microsoft Graph dont le complément a besoin.

Propriété « extensions »

Nous travaillons dur pour compléter la documentation de référence pour la propriété « extensions » et ses propriétés descendantes. En attendant, les informations suivantes fournissent une documentation de base. La plupart des propriétés, mais pas toutes, ont un élément (ou attribut) équivalent dans le manifeste XML pour les compléments. Pour la plupart, la description et les restrictions qui s’appliquent à l’élément ou à l’attribut XML s’appliquent également à sa propriété JSON équivalente dans le manifeste unifié. Les tables de la section « extensions » de la section Comparer le manifeste XML au manifeste unifié pour Microsoft 365 peuvent vous aider à déterminer l’équivalent XML d’une propriété JSON.

Propriété JSON Objectif
« requirements.capabilities » Identifie les ensembles de conditions requises que le complément doit être installable.
« étendues des conditions » Identifie les applications Office dans lesquelles le complément peut être installé. Par exemple, « courrier » signifie que le complément peut être installé dans Outlook.
« rubans » Rubans personnalisés par le complément.
« ribbons.contexts » Spécifie les surfaces de commande que le complément personnalise. Par exemple, « mailRead » ou « mailCompose ».
« ribbons.tabs » Configure les onglets du ruban personnalisé.
« alternatives » Spécifie la compatibilité descendante avec un complément COM équivalent, XLL ou les deux.
« runtimes » Configure les runtimes incorporés que le complément utilise, y compris différents types de compléments qui ont peu ou pas d’interface utilisateur, comme les compléments de fonction uniquement personnalisés et les commandes de fonction.
« AutoRunEvents » Configure un gestionnaire d’événements pour un événement spécifié.

Spécifier des domaines sécurisés

Il existe un tableau « validDomains » dans le fichier manifeste qui est utilisé pour indiquer à Office les domaines vers lesquels votre complément doit être autorisé à accéder. Comme indiqué dans Spécifier les domaines que vous souhaitez ouvrir dans la fenêtre de complément, lors de l’exécution dans Office sur le Web, votre volet Office peut être redirigé vers n’importe quelle URL. Toutefois, sur les plateformes de bureau, si votre complément tente d’accéder à une URL dans un domaine autre que le domaine qui héberge la page de démarrage, cette URL s’ouvre dans une nouvelle fenêtre de navigateur en dehors du volet de complément de l’application Office.

Pour remplacer ce comportement dans les plateformes de bureau, ajoutez chaque domaine que vous souhaitez ouvrir dans la fenêtre de complément à la liste des domaines spécifiés dans le tableau « validDomains ». Si le complément tente d’accéder à une URL située dans un domaine figurant dans cette liste, il s’ouvre dans le volet Office d’Office sur le web et de la version de bureau d’Office. Si elle tente d’accéder à une URL qui ne figure pas dans la liste, dans Office sur le bureau, cette URL s’ouvre dans une nouvelle fenêtre de navigateur (en dehors du volet Office du complément).

Exemple de manifeste unifié en préversion

Voici un exemple de manifeste d’application unifiée en préversion pour un complément.

{
  "$schema": "https://raw.githubusercontent.com/OfficeDev/microsoft-teams-app-schema/op/extensions/MicrosoftTeams.schema.json",
  "id": "00000000-0000-0000-0000-000000000000",
  "version": "1.0.0",
  "manifestVersion": "devPreview",
  "name": {
    "short": "Name of your app (<=30 chars)",
    "full": "Full name of app, if longer than 30 characters (<=100 chars)"
  },
  "description": {
    "short": "Short description of your app (<= 80 chars)",
    "full": "Full description of your app (<= 4000 chars)"
  },
  "icons": {
    "outline": "outline.png",
    "color": "color.png"
  },
  "accentColor": "#230201",
  "developer": {
    "name": "Contoso",
    "websiteUrl": "https://www.contoso.com",
    "privacyUrl": "https://www.contoso.com/privacy",
    "termsOfUseUrl": "https://www.contoso.com/servicesagreement"
  },
  "localizationInfo": {
    "defaultLanguageTag": "en-us",
    "additionalLanguages": [
      {
        "languageTag": "es-es",
        "file": "es-es.json"
      }
    ]
  },
  "webApplicationInfo": {
    "id": "00000000-0000-0000-0000-000000000000",
    "resource": "api://www.contoso.com/prodapp"
  },
  "authorization": {
    "permissions": {
      "resourceSpecific": [
        {
          "name": "Mailbox.ReadWrite.User",
          "type": "Delegated"
        }
      ]
    }
  },
  "extensions": [
    {
      "requirements": {
        "scopes": [ "mail" ],
        "capabilities": [
          {
            "name": "Mailbox", "minVersion": "1.1"
          }
        ]
      },
      "runtimes": [
        {
          "requirements": {
            "capabilities": [
              {
                "name": "MailBox", "minVersion": "1.10"
              }
            ]
          },
          "id": "eventsRuntime",
          "type": "general",
          "code": {
            "page": "https://contoso.com/events.html",
            "script": "https://contoso.com/events.js"
          },
          "lifetime": "short",
          "actions": [
            {
              "id": "onMessageSending",
              "type": "executeFunction"
            },
            {
              "id": "onNewMessageComposeCreated",
              "type": "executeFunction"
            }
          ]
        },
        {
          "requirements": {
            "capabilities": [
              {
                "name": "MailBox", "minVersion": "1.1"
              }
            ]
          },
          "id": "commandsRuntime",
          "type": "general",
          "code": {
            "page": "https://contoso.com/commands.html",
            "script": "https://contoso.com/commands.js"
          },
          "lifetime": "short",
          "actions": [
            {
              "id": "action1",
              "type": "executeFunction"
            },
            {
              "id": "action2",
              "type": "executeFunction"
            },
            {
              "id": "action3",
              "type": "executeFunction"
            }
          ]
        }
      ],
      "ribbons": [
        {
          "contexts": [
            "mailCompose"
          ],
          "tabs": [
            {
              "builtInTabId": "TabDefault",
              "groups": [
                {
                  "id": "dashboard",
                  "label": "Controls",
                  "controls": [
                    {
                      "id": "control1",
                      "type": "button",
                      "label": "Action 1",
                      "icons": [
                        {
                          "size": 16,
                          "url": "test_16.png"
                        },
                        {
                          "size": 32,
                          "url": "test_32.png"
                        },
                        {
                          "size": 80,
                          "url": "test_80.png"
                        }
                      ],
                      "supertip": {
                        "title": "Action 1 Title",
                        "description": "Action 1 Description"
                      },
                      "actionId": "action1"
                    },
                    {
                      "id": "menu1",
                      "type": "menu",
                      "label": "My Menu",
                      "icons": [
                        {
                          "size": 16,
                          "url": "test_16.png"
                        },
                        {
                          "size": 32,
                          "url": "test_32.png"
                        },
                        {
                          "size": 80,
                          "url": "test_80.png"
                        }
                      ],
                      "supertip": {
                        "title": "My Menu",
                        "description": "Menu with 2 actions"
                      },
                      "items": [
                        {
                          "id": "menuItem1",
                          "type": "menuItem",
                          "label": "Action 2",
                          "supertip": {
                            "title": "Action 2 Title",
                            "description": "Action 2 Description"
                          },
                          "actionId": "action2"
                        },
                        {
                          "id": "menuItem2",
                          "type": "menuItem",
                          "label": "Action 3",
                          "icons": [
                            {
                              "size": 16,
                              "url": "test_16.png"
                            },
                            {
                              "size": 32,
                              "url": "test_32.png"
                            },
                            {
                              "size": 80,
                              "url": "test_80.png"
                            }
                          ],
                          "supertip": {
                            "title": "Action 3 Title",
                            "description": "Action 3 Description"
                          },
                          "actionId": "action3"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "contexts": [ "mailRead" ],
          "tabs": [
            {
              "builtInTabId": "TabDefault",
              "groups": [
                {
                  "id": "dashboard",
                  "label": "Controls",
                  "controls": [
                    {
                      "id": "control1",
                      "type": "button",
                      "label": "Action 1",
                      "icons": [
                        {
                          "size": 16,
                          "url": "test_16.png"
                        },
                        {
                          "size": 32,
                          "url": "test_32.png"
                        },
                        {
                          "size": 80,
                          "url": "test_80.png"
                        }
                      ],
                      "supertip": {
                        "title": "Action 1 Title",
                        "description": "Action 1 Description"
                      },
                      "actionId": "action1"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "autoRunEvents": [
        {
          "requirements": {
            "capabilities": [
              {
                "name": "MailBox", "minVersion": "1.10"
              }
            ]
          },
          "events": [
            {
              "type": "newMessageComposeCreated",
              "actionId": "onNewMessageComposeCreated"
            },
            {
              "type": "messageSending",
              "actionId": "onMessageSending",
              "options": {
                "sendMode": "promptUser"
              }
            }
          ]
        }
      ],
      "alternates": [
        {
          "requirements": {
            "scopes": [ "mail" ]
          },
          "prefer": {
            "comAddin": {
              "progId": "ContosoExtension"
            }
          },
          "hide": {
            "storeOfficeAddin": {
              "officeAddinId": "00000000-0000-0000-0000-000000000000",
              "assetId": "WA000000000"
            }
          }
        }
      ]
    }
  ]
}

Voir aussi