Publier teamsApp
Espace de noms: microsoft.graph
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 ActivityGroupId champ dans ActivityType n’est pas un sous-ensemble du Id champ 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 ActivityGroup propriété est disponible, mais la ActivityType propriété 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 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 le Command Ids dans le manifeste de l’application n’est pas inclus dans le Operation Ids 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 été définie 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 canUpdateConfiguration été définie 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 été définie 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 apiSecretServiceAuth authType 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 n’est pas définie sur supportsSingleSignOn 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 non prise en charge http définie dans le apiSpecificationFile . |
ApiSpecificationFileParameterContainUnsupportedSchemaType |
L’extension compose basée sur l’API a un type de schéma de paramètre non pris en charge défini sur apiSpecificationFile. Les tableaux ne sont pas pris en charge. | L’extension compose 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 non pris media en charge défini dans le corps de la requête dans .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 compose 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 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 requête dans le 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 le 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 required paramètre 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 non pris media en charge défini en réponse dans le 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 http le protocole dans le 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 invalid URL définie dans le 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 apiResponseRenderingTemplateFile propriété 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. | L’extension botId de composition basée sur un bot n’est pas guid. |
BotIdIsNotGuid |
BotId n’est pas une valeur guid. | La BotId valeur dans le manifeste de l’application n’est pas un GUID. |
CommonAppIdIsNotGuid |
Le champ 'ID' n’est pas un GUID dans le manifeste. | n’est pas un appId GUID. |
CommonAppIdIsRequiredField |
Le champ obligatoire « ID » est manquant dans le manifeste. | n’est appId 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. | Est privacyUrl 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 des bots n’est pas prise en charge dans le manifeste d’application version 1.3 et antérieure. |
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 des 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 été définie 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 microsoftEntraConfiguration pas été définie 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 microsoftEntra l’URL de ressource 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. |
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 systemDefault type d’activité 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 réservé staticTabs a été spécifiée. |
SchemaError_AdditionalItems |
Le schéma n’autorise pas d’éléments supplémentaires. | Le fichier manifeste de l’application additionalItems n’a pas pu valider le 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 additionalProperties n’a pas pu valider le 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 allOf n’a pas pu valider le schéma. |
SchemaError_AnyOf |
JSON ne correspond à aucun schéma de « anyOf ». | Le fichier manifeste de l’application anyOf n’a pas pu valider le schéma. |
SchemaError_Const |
La valeur {0} ne correspond pas à la constante {1}. | Le fichier manifeste de l’application const n’a pas pu valider le schéma. Ici, {0} représente la valeur qui a échoué et {1} représente la valeur correcte. |
SchemaError_ContentEncoding |
La chaîne {0} ne valide pas par rapport à l’encodage de {1}contenu . | Le fichier manifeste de l’application contentEncoding n’a pas pu valider le 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 dependencies n’a pas pu valider le 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 else n’a pas pu valider le schéma. |
SchemaError_Enum |
La valeur {0} n’est pas définie dans l’énumération. | Le fichier manifeste de l’application enum n’a pas pu valider le 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 format n’a pas pu valider le 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 id n’a pas pu valider le schéma. Ici, {0} représente le id du schéma. |
SchemaError_Maximum |
L’entier {0} dépasse la valeur maximale de {1}. | Le fichier manifeste de l’application maximum n’a pas pu valider le 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 maximumItems n’a pas pu valider le 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 maximumLength n’a pas pu valider le 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 maximumProperties n’a pas pu valider le 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 minimum n’a pas pu valider le 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 minimumItems n’a pas pu valider le 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 minimumLength n’a pas pu valider le 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 minimumProperties n’a pas pu valider le 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_Not |
JSON est valide par rapport au schéma de « not ». | Le fichier manifeste de l’application not 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 oneOf n’a pas pu valider le 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 pattern n’a pas pu valider le 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 patternProperties n’a pas pu valider le 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 required n’a pas pu 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 then n’a pas pu valider le schéma. |
SchemaError_Type |
La valeur {0} n’est pas du type {1}attendu. | Le fichier manifeste de l’application type n’a pas pu valider le 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 uniqueItems n’a pas pu valider le schéma. |
SchemaError_Valid |
La validation du schéma échoue toujours. | Le fichier manifeste de l’application valid 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 .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. |
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/v1.0/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/v1.0/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/v1.0/appCatalogs/teamsApps/e3e29acb-8c79-412b-b746-e6c39ff4cd22
{
"@odata.context": "https://graph.microsoft.com/v1.0/$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/v1.0/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/v1.0/$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 dans le catalogue d’applications avec une erreur dans le manifeste de l’application
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"
}
}
}