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 UnableToParseTeamsAppManifest
d’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"
}
}
}