Partager via


Publier teamsApp

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Publier une application dans le catalogue d’applications Microsoft Teams. Plus précisément, cette API publie l’application dans le catalogue de votre organization (le catalogue d’applications client). La ressource créée a une valeur de propriété distributionMethod .organization

La propriété requiresReview permet à tout utilisateur de soumettre une application pour révision par un administrateur. Les administrateurs peuvent approuver ou rejeter ces applications via cette API ou le Centre d’administration Microsoft Teams.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) AppCatalog.Submit AppCatalog.ReadWrite.All, Directory.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Non prise en charge. Non prise en charge.

Remarque

  • L’autorisation Directory.ReadWrite.All est prise en charge uniquement pour la compatibilité descendante. Nous vous recommandons de mettre à jour vos solutions pour utiliser une autorisation différente répertoriée dans le tableau précédent et d’éviter d’utiliser ces autorisations à l’avenir.
  • L’autorisation AppCatalog.Submit vous permet de soumettre des applications pour révision uniquement, et non de les publier dans le catalogue.

Requête HTTP

POST /appCatalogs/teamsApps

Pour publier une application qui nécessite une révision :

POST /appCatalogs/teamsApps?requiresReview={Boolean}

Paramètres de requête

Propriété Type Description
requiresReview Boolean Ce paramètre de requête facultatif déclenche le processus de révision de l’application. Les utilisateurs disposant de privilèges d’administrateur peuvent envoyer des applications sans déclencher de révision. Si les utilisateurs souhaitent demander une révision avant la publication, ils doivent définir requiresReview sur true. Un utilisateur disposant de privilèges d’administrateur peut choisir de ne pas définir requiresReview ou de définir la valeur sur false et l’application est approuvée et immédiatement publiée.

En-têtes de demande

En-tête Valeur
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/zip. Obligatoire.

Corps de la demande

Dans le corps de la demande, incluez une charge utile de manifeste zip Teams. Pour plus d’informations, consultez Créer un package d’application.

Chaque application du catalogue d’applications doit avoir un ID de manifeste unique.

Réponse

Si elle réussit, cette méthode renvoie un 200 OK code de réponse et un objet teamsApp . Si le manifeste de l’application comporte des erreurs de validation, la demande retourne une réponse d’erreur avec des détails sur les erreurs de schéma.

Réponse d’erreur

Si vous envoyez une demande de chargement d’un manifeste d’application qui contient des informations ou des erreurs manquantes, vous recevez un message d’erreur qui inclut le code UnableToParseTeamsAppManifestd’erreur interne . La propriété details de l’erreur interne contient le code d’erreur et le message d’erreur. Le tableau suivant décrit les codes d’erreur que vous pouvez rencontrer.


Réponse d’erreur
Code d’erreur Message d’erreur Description
ActivityGroupIdFromActivitiesTypeValidation Le champ ActivityGroupId dans ActivityType doit être un sous-ensemble du champ ID dans ActivityGroup. Le champ ActivityGroupId dans ActivityType n’est pas un sous-ensemble du champ Id dans ActivityGroup dans le manifeste de l’application.
ActivityTypesMustExistWithActivitiesGroupValidation Le manifeste ne doit pas contenir de groupe d’activités lorsque des types d’activité sont manquants. La propriété ActivityGroup est disponible, mais la propriété ActivityType est manquante dans le manifeste de l’application.
ApiBasedComposeExtensionApiResponseRenderingTemplateFileNullOrEmpty L’extension de composition basée sur l’API doit avoir apiResponseRenderingTemplateFile défini sur le manifeste. L’extension de composition basée sur l’API n’a pas le apiResponseRenderingTemplateFile défini dans le manifeste de l’application.
ApiBasedComposeExtensionApiSpecificationFileNullOrEmpty L’extension de composition basée sur l’API doit avoir apiSpecificationFile défini sur le manifeste. L’extension de composition basée sur l’API n’a pas le fichier apiSpecificationFile défini dans le manifeste de l’application.
ApiBasedComposeExtensionManifestCommandIdsNotIncludedInOperationIdsOnApiSpecficationFile Les ID de commande sur le manifeste ne sont pas inclus dans les ID d’opération sur le fichier de spécification d’API. Erreur qui se produit lorsque les ID de commande dans le manifeste de l’application ne sont pas inclus dans les ID d’opération sur le fichier de spécification de l’API.
ApiBasedComposeExtensionWithBotId L’extension de composition basée sur l’API ne peut pas avoir botId défini. L’extension de composition basée sur l’API a botId défini dans le manifeste de l’application.
ApiBasedComposeExtensionWithCanUpdateConfiguration L’extension de composition basée sur l’API ne peut pas avoir canUpdateConfiguration définie sur le manifeste. L’extension de composition basée sur l’API a défini canUpdateConfiguration dans le manifeste de l’application.
ApiBasedComposeExtensionWithNoParameter L’extension de composition basée sur l’API doit avoir des paramètres de commande définis sur le manifeste. L’extension de composition basée sur l’API n’a aucun paramètre de commande défini dans le manifeste de l’application.
ApiSecretServiceAuthTypeComposeExtensionContainsMsftEntraConfiguration L’extension de composition basée sur l’API avec authType apiSecretServiceAuth a microsoftEntraConfiguration défini. L’extension de composition basée sur l’API a microsoftEntraConfiguration défini dans le manifeste de l’application.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretRegistrationId L’extension de composition basée sur l’API avec authType apiSecretServiceAuth n’a pas d’apiSecretRegistrationId défini. Extension de composition basée sur l’API avec authType apiSecretServiceAuth sans apiSecretRegistrationId défini dans le manifeste de l’application.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretServiceAuthConfiguration L’extension de composition basée sur l’API avec apiSecretServiceAuth authType n’a pas apiSecretServiceConfiguration. L’extension de composition basée sur l’API ne définit pas supportsSingleSignOn sur true dans le manifeste de l’application.
ApiSpecificationFileContainUnsupportedHttpMethod L’extension de composition basée sur l’API a des URL de serveur qui ont une méthode http non prise en charge définie sur apiSpecificationFile. Actuellement, seuls GET et POST sont pris en charge. L’extension de composition basée sur l’API a une méthode HTTP non prise en charge définie dans apiSpecificationFile.
ApiSpecificationFileParameterContainUnsupportedSchemaType Les extensions compose basées sur l’API ont un type de schéma de paramètre non pris en charge défini sur apiSpecificationFile.Arrays ne sont pas pris en charge. L’extension de composition basée sur l’API a un type de schéma de paramètre non pris en charge défini dans apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedMediaType L’extension de composition basée sur l’API a un type de média non pris en charge défini dans le corps de la requête sur apiSpecificationFile. Actuellement, seule application/json est prise en charge. L’extension de composition basée sur l’API a un type de média non pris en charge défini dans le corps de la demande dans le fichier apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedSchemaType L’extension de composition basée sur l’API a un type de schéma non pris en charge défini dans le corps de la requête sur apiSpecificationFile. Actuellement, les tableaux ne sont pas pris en charge. L’extension de composition basée sur l’API a un type de schéma non pris en charge défini dans le corps de la requête dans le fichier apiSpecificationFile.
ApiSpecificationFileRequestBodySchemaContainKeywords L’extension de composition basée sur l’API a des mots clés. L’extension de composition basée sur l’API a des mots clés définis dans le corps de la demande dans le fichier apiSpecificationFile.
ApiSpecificationFileRequiredParameterContainUnsupportedLocation L’extension de composition basée sur l’API a un emplacement de paramètre non pris en charge défini sur apiSpecificationFile pour {0}. Actuellement, seuls le chemin d’accès et la requête sont pris en charge. L’extension de composition basée sur l’API a un emplacement de paramètre non pris en charge défini dans apiSpecificationFile.
ApiSpecificationFileRequiredParameterOrPropertyNotDefinedOnManifest L’extension de composition basée sur l’API a des paramètres ou des propriétés obligatoires {0} non définis sur le manifeste. L’extension de composition basée sur l’API a un paramètre obligatoire, qui n’est pas défini dans le manifeste de l’application.
ApiSpecificationFileResponseContainUnsupportedMediaType L’extension de composition basée sur l’API a un type de média non pris en charge défini en réponse sur apiSpecificationFile. Actuellement, seule l’application/json est prise en charge. L’extension de composition basée sur l’API a un type de média non pris en charge défini en réponse dans le fichier apiSpecificationFile.
ApiSpecificationFileServerUrlsContainHttp L’extension de composition basée sur l’API a des URL de serveur dont le protocole http est défini sur apiSpecificationFile. L’extension de composition basée sur l’API a des URL de serveur qui contiennent le protocole http dans apiSpecificationFile.
ApiSpecificationFileServerUrlsContainInvalidUrl L’extension de composition basée sur l’API a des URL de serveur qui ne sont pas valides définies sur apiSpecificationFile. L’extension de composition basée sur l’API a une URL non valide définie dans le fichier apiSpecificationFile.
BotBasedComposeExtensionApiResponseRenderingTemplateFileExists L’extension de composition basée sur un bot ne peut pas avoir apiResponseRenderingTemplateFile définie. L’extension de composition basée sur un bot a une propriété apiResponseRenderingTemplateFile définie dans le manifeste de l’application.
BotBasedComposeExtensionApiSpecificationFileExists L’extension de composition basée sur un bot ne peut pas avoir apiSpecificationFile définie. L’extension compose basée sur un bot a un fichier de spécification d’API défini dans le manifeste de l’application.
BotBasedComposeExtensionBotIdNotGuid L’extension de composition basée sur un bot doit avoir guid botId. Le botId de l’extension compose basée sur un bot n’est pas un GUID.
BotIdIsNotGuid BotId n’est pas une valeur guid. La valeur BotId dans le manifeste de l’application n’est pas un GUID.
CommonAppIdIsNotGuid Le champ 'ID' n’est pas un GUID dans le manifeste. L’appId n’est pas un GUID.
CommonAppIdIsRequiredField Le champ obligatoire « ID » est manquant dans le manifeste. L’appId n’est pas fourni.
CommonManifestVersionIsRequiredField Le champ obligatoire dans le manifeste « manifest Version » est manquant. La version du manifeste n’est pas fournie.
CommonSchemaUrlIsRequiredField L’URL du schéma doit être présente. Le schéma n’est pas fourni.
DashboardCardBothIconNameAndUrlPresent L’icône cartes de tableau de bord ne doit pas contenir à la fois le nom de l’icône et l’URL. L’icône de cartes de tableau de bord ne doit pas contenir à la fois le nom de l’icône et l’URL.
DashboardCardEntityIdsAreNotUnique Les ID d’entité carte tableau de bord doivent être uniques. L’ID d’entité retourné pour un tableau de bord carte n’est pas unique dans le manifeste.
DeveloperNameIsRequiredField Le champ obligatoire « nom du développeur » est manquant dans le manifeste. Le nom du développeur n’est pas fourni.
DeveloperNameLengthCheck La longueur maximale des caractères ne doit pas dépasser 32 caractères. Le nom du développeur compte plus de 32 caractères.
DeveloperPrivacyUrlIsRequiredField Le champ obligatoire « privacyUrl » est manquant dans le manifeste. Le privacyUrl est manquant dans le manifeste de l’application.
DeveloperPrivacyUrlMustBeHttps L’URL de confidentialité doit être une URL de support sécurisée (HTTPS). L’URL de confidentialité du développeur n’a pas utilisé HTTPS.
DeveloperTermsOfUseUrlIsRequiredField Le champ obligatoire « termsOfUseUrl » est manquant dans le manifeste. Le fichier termsOfUseUrl est manquant dans le manifeste.
DeveloperTermsOfUseUrlMustBeHttps L’URL des conditions d’utilisation doit être une URL de support sécurisée (HTTPS). L’URL des conditions d’utilisation du développeur n’a pas utilisé HTTPS.
DeveloperWebsiteUrlIsRequiredField Le champ obligatoire « websiteUrl » est manquant dans le manifeste. L’URL du site web du développeur est manquante.
DeveloperWebsiteUrlMustBeHttps L’URL du site web doit être une URL de support sécurisée (HTTPS). L’URL du site web du développeur n’a pas utilisé HTTPS.
FullDescriptionCannotBeEmpty La description complète ne peut pas être vide. La description complète est vide.
FullDescriptionLengthCheck La longueur maximale des caractères pour une description longue ne doit pas dépasser 4 000 caractères. La longueur complète de la description est de plus de 4 000 caractères.
GroupChatForBotsLessThanV13 Mettez à niveau la version du manifeste vers la version 1.3, car le bot de conversation de groupe est pris en charge dans manifest v1.3 et versions ultérieures. L’étendue groupChat pour les bots n’est pas prise en charge dans le manifeste d’application version 1.3 et versions antérieures.
GroupChatForConfigurableTabsLessThanV13 Mettez à niveau la version du manifeste vers la version 1.3, car les onglets configurables de conversation de groupe sont pris en charge dans manifest v1.3 et versions ultérieures. L’étendue groupChat pour les onglets configurables n’est pas prise en charge dans le manifeste d’application version 1.3 et antérieure.
InvalidColor32x32IconHeightAndWidth L’icône couleur 32x32 doit être 32 x 32 avec uniquement blanc et transparent. L’icône de couleur 32x32 n’a pas les dimensions correctes.
InvalidColorIconHeightAndWidth L’icône de couleur n’est pas en fonction de la dimension requise. Les dimensions de l’icône de couleur sont incorrectes.
InvalidOutlineIconHeightAndWidth La petite icône doit être de 32 x 32 avec uniquement des caractères blancs et transparents. Les dimensions de l’icône de plan sont incorrectes.
InvalidOutlineIconTransparency L’icône Plan n’est pas transparente. C’est Alpha. L’icône de plan contient des pixels qui ne sont ni transparents ni blancs, avec les valeurs Alpha, R, G, B de {0}, {1}{2}, et {3}.
MsftEntraAuthTypeComposeExtensionContainsApiSecretServiceConfiguration ApiSecretServiceConfiguration est défini pour l’extension de composition basée sur l’API avec microsoftEntra authType. L’extension de composition basée sur l’API a apiSecretServiceConfiguration défini dans le manifeste.
MsftEntraAuthTypeComposeExtensionContainsNoMsftEntraConfiguration L’extension de composition basée sur l’API avec microsoftEntra authType n’a pas de microsoftEntraConfiguration défini. L’extension de composition basée sur l’API n’a pas microsoftEntraConfiguration défini dans le manifeste de l’application.
MsftEntraAuthTypeComposeExtensionResourceURLNotMatchServerURLOnApiSpec L’extension de composition basée sur l’API avec l’URL de ressource authType microsoftEntra sur le manifeste ne correspond pas à l’URL du serveur sur le fichier de spécification d’API. L’extension de composition basée sur l’API avec l’URL de ressource microsoftEntra authType dans le manifeste de l’application ne correspond pas à l’URL du serveur dans le fichier de spécification de l’API.
MsftEntraAuthTypeComposeExtensionSupportsSingleSignOnFalse L’extension de composition basée sur l’API avec microsoftEntra authType ne définit pas supportsSingleSignOn sur true. L’extension de composition basée sur l’API ne définit pas supportsSingleSignOntrue sur dans le manifeste de l’application.
MsftEntraAuthTypeComposeExtensionWebApplicationInfoOrResourceNotDefined L’extension de composition basée sur l’API avec microsoftEntra authType n’a aucune ressource webApplicationInfo ou ressource définie sur le manifeste. L’extension de composition basée sur l’API avec microsoftEntra authType n’a pas webApplicationInfo ou ressource définie dans le manifeste de l’application.
NoAuthTypeComposeExtensionContainsAuthConfiguration Les extensions de composition basées sur l’API sans authType ont une configuration liée à l’authentification définie. L’extension de composition basée sur l’API avec authType microsoftEntraConfiguration ou apiSecretServiceConfiguration n’est pas définie dans le manifeste de l’application.
ParameterOnManifestNotDefinedOnApiSpecFile L’extension compose basée sur l’API a des paramètres {0} sur le manifeste qui ne sont pas définis dans le fichier de spécification d’API. Les paramètres d’extension de composition basée sur l’API dans le manifeste de l’application ne sont pas définis dans le fichier de spécification de l’API.
ReservedActivitiesValidation Le manifeste ne doit pas contenir de type d’activité réservé « systemDefault ». Le type d’activité systemDefault est défini dans le manifeste de l’application.
ReservedStaticTabNameShouldBeNull La propriété « Name » de l’onglet réservé ne doit pas être spécifiée. La propriété de nom staticTabs réservée a été spécifiée.
SchemaError_AdditionalItems Le schéma n’autorise pas d’éléments supplémentaires. Le fichier manifeste de l’application n’a pas réussi à valider additionalItems du schéma.
SchemaError_AdditionalProperties La propriété {0} n’a pas été définie et le schéma n’autorise pas de propriétés supplémentaires. Le fichier manifeste de l’application a échoué à la validation additionalProperties du schéma. Ici, {0} représente la propriété supplémentaire.
SchemaError_AllOf JSON ne correspond pas à tous les schémas de « allOf ». Le fichier manifeste de l’application a échoué à la validation allOf du schéma.
SchemaError_AnyOf JSON ne correspond à aucun schéma de « anyOf ». Le fichier manifeste de l’application a échoué à la validation anyOf du schéma.
SchemaError_Const La valeur {0} ne correspond pas à la constante {1}. Le fichier manifeste de l’application a échoué à la validation const du schéma. Ici, {0} représente la valeur qui a échoué et {1} représente la valeur correcte.
SchemaError_Contains Array ne contient pas d’élément obligatoire. Le fichier manifeste de l’application a échoué à la validation de contient le schéma.
SchemaError_ContentEncoding La chaîne {0} ne valide pas par rapport à l’encodage de {1}contenu . Le fichier manifeste de l’application a échoué à la validation contentEncoding du schéma. Ici, {0} représente la chaîne qui ne correspond pas à l’encodage de contenu et {1} représente l’encodage de contenu attendu.
SchemaError_Dependencies Échec des dépendances pour la propriété {0} . Clés requises manquantes. Le fichier manifeste de l’application n’a pas pu valider les dépendances du schéma. Ici, {0} représente la propriété qui a échoué.
SchemaError_Else JSON ne correspond pas au schéma de « else ». Le fichier manifeste de l’application a échoué à la validation else du schéma.
SchemaError_Enum La valeur {0} n’est pas définie dans l’énumération. Le fichier manifeste de l’application n’a pas pu valider l’énumération du schéma. Ici, {0} représente la valeur qui n’est pas dans l’énumération.
SchemaError_Format La chaîne {0} ne valide pas par rapport au format {1}. Le fichier manifeste de l’application n’a pas réussi à valider le format du schéma. Ici, {0} représente la chaîne qui n’est pas au format attendu et {1} représente le format attendu.
SchemaError_Id ID de {0} schéma en double rencontré. Le fichier manifeste de l’application n’a pas réussi à valider l’ID du schéma. Ici, {0} représente l’ID du schéma.
SchemaError_Maximum L’entier {0} dépasse la valeur maximale de {1}. Le fichier manifeste de l’application a échoué à la validation maximale du schéma. Ici, {0} représente la valeur qui dépasse la limite maximale et {1} représente la limite maximale.
SchemaError_MaximumItems Le nombre d’éléments {0} de tableau dépasse le nombre maximal de {1}. Le fichier manifeste de l’application a échoué à la validation maximumItems du schéma. Ici, {0} représente le nombre d’éléments dans le tableau et {1} représente le maximum autorisé.
SchemaError_MaximumLength La chaîne {0} dépasse la longueur maximale de {1}. Le fichier manifeste de l’application a échoué à la validation maximumLength du schéma. Ici, {0} représente la chaîne qui dépasse la longueur maximale et {1} représente la longueur maximale.
SchemaError_MaximumProperties Le nombre de {0} propriétés d’objet dépasse le nombre maximal de {1}. Le fichier manifeste de l’application a échoué à la validation maximumProperties du schéma. Ici, {0} représente le nombre de propriétés fournies et {1} représente le nombre maximal de propriétés autorisées.
SchemaError_Minimum L’entier {0} est inférieur à la valeur minimale de {1}. Le fichier manifeste de l’application a échoué à la validation minimale du schéma. Ici, {0} représente la valeur qui dépasse la limite minimale et {1} représente la limite minimale.
SchemaError_MinimumItems Le nombre {0} d’éléments de tableau est inférieur au nombre minimal de {1}. Le fichier manifeste de l’application a échoué à la validation minimumItems du schéma. Ici, {0} représente le nombre d’éléments dans le tableau et {1} représente le minimum autorisé.
SchemaError_MinimumLength Chaîne {0} est inférieure à la longueur minimale de {1}. Le fichier manifeste de l’application a échoué à la validation minimumLength du schéma. Ici, {0} représente la chaîne inférieure à la longueur minimale et {1} représente la valeur minimale.
SchemaError_MinimumProperties Le nombre de {0} propriétés d’objet est inférieur au nombre minimal de {1}. Le fichier manifeste de l’application a échoué à la validation minimumProperties du schéma. Ici, {0} représente le nombre de propriétés fournies et {1} représente les propriétés minimales autorisées.
SchemaError_MultipleOf Integer {0} n’est pas un multiple de {1}. Le fichier manifeste de l’application a échoué à la validation multipleOf du schéma. Ici, {0} représente la valeur entière et {1} indique le multiple requis.
SchemaError_Not JSON est valide par rapport au schéma de « not ». Le fichier manifeste de l’application n’a pas pu valider le schéma.
SchemaError_OneOf JSON est valide pour plusieurs schémas de « oneOf ». Le fichier manifeste de l’application a échoué à la validation oneOf du schéma.
SchemaError_Other La valeur n’est pas conforme au schéma de cette propriété. Le fichier manifeste de l’application a échoué à d’autres validations non gérées du schéma.
SchemaError_Pattern La chaîne {0} ne correspond pas au modèle d’expression régulière «{1} ». Le fichier manifeste de l’application n’a pas pu valider le modèle du schéma. Ici, {0} représente la valeur qui ne correspond pas au modèle et {1} représente le modèle attendu.
SchemaError_PatternProperties Impossible de tester les noms de propriétés avec le modèle d’expression régulière «{0} ». Le fichier manifeste de l’application a échoué à la validation de patternProperties du schéma. Ici, {0} représente le modèle pour les propriétés.
SchemaError_Required Les propriétés requises sont manquantes dans l’objet : {0}. Le fichier manifeste de l’application n’a pas réussi à valider le schéma. Ici, {0} représente les propriétés requises.
SchemaError_Then JSON ne correspond pas au schéma de « then ». Le fichier manifeste de l’application a échoué lors de la validation du schéma.
SchemaError_Type La valeur {0} n’est pas du type {1}attendu. Le fichier manifeste de l’application n’a pas pu valider le type du schéma. Ici, {0} représente la chaîne qui n’est pas dans le type attendu et {1} représente le type attendu.
SchemaError_UniqueItems Le tableau contient des éléments qui ne sont pas uniques. Le fichier manifeste de l’application a échoué à la validation uniqueItems du schéma.
SchemaError_Valid La validation du schéma échoue toujours. Le fichier manifeste de l’application n’a pas pu valider le schéma.
Serialization_FileMissing Le fichier {0} est introuvable dans le package d’application. Le fichier attendu est manquant dans le package d’application.
Serialization_FileNotValidJson Impossible d’analyser le fichier en tant qu’objet JSON. Le fichier envoyé n’était pas conforme à un format JSON valide.
Serialization_ManifestVersionPropertyMissing Le fichier ne contient pas la propriété «{0} ». La propriété manifestVersion est manquante dans le fichier manifeste de l’application. Ici, {0} représente la chaîne de la propriété manifestVersion .
Serialization_TrailingCommaInManifestJsonFile Le fichier json du manifeste contient des virgules de fin. Le fichier manifeste de l’application contient une virgule de fin.
ServerUrlsMissingOnApiSpecificationFile Aucune URL de serveur n’est définie sur apiSpecificationFile pour l’extension compose basée sur l’API. L’erreur qui se produit L’extension de composition basée sur l’API n’a aucune URL de serveur définie dans le fichier apiSpecificationFile.
ShortDescriptionCannotBeEmpty La description courte ne peut pas être vide La brève description était vide.
ShortDescriptionLengthCheck La longueur maximale des caractères pour la description courte ne doit pas dépasser 80 caractères. La description courte est de plus de 80 caractères.
ShortNameEqualsReservedName Le nom court de l’application ne peut pas être un nom réservé. Le nom court est un nom réservé.
ShortNameIsRequiredField Le nom court de l’application ne peut pas être vide. Le nom court est vide.
ShortNameLengthCheck La longueur maximale des caractères pour Nom court ne doit pas dépasser 30 caractères. Le nom court dépasse 30 caractères.
StaticTabNameCouldNotBeEmpty La propriété « Name » non réservée staticTabs ne peut pas être vide. La propriété staticTabs name est vide.
UniqueActivityTypeInActivitiesValidation Le manifeste ne doit pas contenir de type d’activité en double. Le type d’activité n’est pas unique dans le manifeste de l’application.
UniqueIdInActivitiesGroupValidation Le manifeste ne doit pas contenir d’ID en double dans l’Groupes d’activité. L’ID du groupe d’activités n’est pas unique dans le manifeste de l’application.
VersionCannotBeEmpty Le champ obligatoire « version » est manquant dans le manifeste. La version du package d’application est manquante.
VersionContainsOnlyNumbersDotSeparated La version de l’application prend uniquement en charge les nombres au format « #.#.# ». La version du package d’application n’est pas mise en correspondance par le modèle #.#.#.
VersionHasMajorLessThan1 La version de l’application ne doit pas commencer par « 0 ». Par exemple, 0.0.1 ou 0.1 ne sont pas des versions d’application valides et 1.0 / 1.5.1 / 1.0.0 / 2.5.0 sont des versions d’application valides. En cas de nouvelle mise à jour dans le manifeste d’une application existante dans le Store. La version de l’application est inférieure à 1.0. Vous devez mettre à niveau la version de votre application. Par exemple, si la version actuelle de votre application dans le Store est 1.0 et que vous soumettez une mise à jour pour validation, la version de l’application doit être supérieure à 1.0.

Exemples

Exemple 1 : Publier une application dans le catalogue d’applications

Demande

L’exemple suivant illustre une demande.

POST https://graph.microsoft.com/beta/appCatalogs/teamsApps
Content-type: application/zip

[Zip file containing a Teams app package]

Pour plus d’informations sur la création d’un fichier zip d’application Microsoft Teams, consultez Créer un package d’application.

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "e3e29acb-8c79-412b-b746-e6c39ff4cd22",
  "externalId": "b5561ec9-8cab-4aa3-8aa2-d8d7172e4311",
  "displayName": "Test App",
  "distributionMethod": "organization"
}

Exemple 2 : Charger une nouvelle application pour révision dans le catalogue d’applications d’une organization

Demande

L’exemple suivant illustre une demande.

POST https://graph.microsoft.com/beta/appCatalogs/teamsApps?requiresReview=true
Content-type: application/zip

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 201 Created
Location: https://graph.microsoft.com/beta/appCatalogs/teamsApps/e3e29acb-8c79-412b-b746-e6c39ff4cd22

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps/$entity",
  "id": "e3e29acb-8c79-412b-b746-e6c39ff4cd22",
  "externalId": "b5561ec9-8cab-4aa3-8aa2-d8d7172e4311",
  "displayName": "Test App",
  "distributionMethod": "organization"
}

Exemple 3 : Approuver ou rejeter une application en attente de révision

Demande

L’exemple suivant illustre une demande.

PATCH https://graph.microsoft.com/beta/appCatalogs/teamsApps/a761ad07-22ef-4a53-9feb-2837c8ad4a84/appDefinitions/YTc2MWFkMDctMjJlZi00YTUzLTlmZWItMjgzN2M4YWQ0YTg0IyMxLjEuOCMjU3VibWl0dGVk
Content-type: application/json
If-Match: InFtSStsNVJHVWdzWUJRU2ZVWGp4RWc9PSI=

{
  "publishingState":"published"
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps('a761ad07-22ef-4a53-9feb-2837c8ad4a84')/appDefinitions/$entity",
    "id": "YTc2MWFkMDctMjJlZi00YTUzLTlmZWItMjgzN2M4YWQ0YTg0IyMxLjEuOCMjUHVibGlzaGVk",
    "teamsAppId": "a761ad07-22ef-4a53-9feb-2837c8ad4a84",
    "azureADAppId": null,
    "displayName": "Ducks",
    "version": "1.1.8",
    "requiredResourceSpecificApplicationPermissions": [],
    "publishingState": "published",
    "shortdescription": "quaerat quasi magnam. slight change. 5",
    "description": "Aliquid placeat animi debitis accusamus. Non perferendis ullam. Quis est consequuntur vitae provident. Sunt laudantium id aut. slight change 5",
    "lastModifiedDateTime": null,
    "createdBy": null
}

Exemple 4 : Publier une application avec une erreur dans le manifeste de l’application dans le catalogue d’applications

Demande

L’exemple suivant illustre une demande.

POST https://graph.microsoft.com/v1.0/appCatalogs/teamsApps
Content-type: application/zip

[Zip file containing a Teams app package]

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-type: application/json

{
    "error": {
        "code": "BadRequest",
        "message": "name | Required properties are missing from object: [].; developer.websiteUrl | String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
        "innerError": {
            "code": "UnableToParseTeamsAppManifest",
            "message": "name | Required properties are missing from object: [].; developer.websiteUrl | String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
            "details": [
                {
                    "code": "SchemaError_Required",
                    "message": "Required properties are missing from object: [].",
                    "target": "name"
                },
                {
                    "code": "SchemaError_Pattern",
                    "message": "String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
                    "target": "developer.websiteUrl"
                }
            ],
            "date": "2024-01-18T21:47:58",
            "request-id": "d1878136-bc88-421a-b342-c3d883db31a1",
            "client-request-id": "d1878136-bc88-421a-b342-c3d883db31a1"
        }
    }
}