Compartir a través de


Publicar teamsApp

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Publicar una aplicación en el catálogo de aplicaciones de Microsoft Teams. En concreto, esta API publica la aplicación en el catálogo de la organización (el catálogo de aplicaciones de inquilino); el recurso creado tiene un valor de propiedad distributionMethod de organization.

La propiedad requiresReview permite a cualquier usuario enviar una aplicación para que la revise un administrador. Los administradores pueden aprobar o rechazar estas aplicaciones a través de esta API o del Centro de administración de Microsoft Teams.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) AppCatalog.Submit AppCatalog.ReadWrite.All, Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación No admitida. No admitida.

Nota:

  • El Directory.ReadWrite.All permiso solo se admite para la compatibilidad con versiones anteriores. Se recomienda actualizar las soluciones para usar un permiso alternativo enumerado en la tabla anterior y así evitar el uso de estos permisos en el futuro.
  • El AppCatalog.Submit permiso le permite enviar aplicaciones solo para revisión, no para publicarlas en el catálogo.

Solicitud HTTP

POST /appCatalogs/teamsApps

Para publicar una aplicación que requiera una revisión:

POST /appCatalogs/teamsApps?requiresReview={Boolean}

Parámetros de consulta

Propiedad Tipo Descripción
requiresReview Booleano Este parámetro de consulta opcional desencadena el proceso de revisión de la aplicación. Los usuarios con privilegios de administrador pueden enviar aplicaciones sin desencadenar una revisión. Si los usuarios quieren solicitar una revisión antes de publicar, deben establecer requiresReview en true. Un usuario que tenga privilegios de administrador puede optar por no establecer requiresReview o establecer el valor en false y la aplicación se aprueba e inmediatamente se publica.

Encabezados de solicitud

Encabezado Valor
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/zip. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, incluya una carga del manifiesto zip de Teams. Para obtener más información, consulte Creación de un paquete de aplicación.

Cada aplicación del catálogo de aplicaciones debe tener un identificador de manifiesto único.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y un objeto teamsApp . Si el manifiesto de la aplicación tiene errores de validación, la solicitud devuelve una respuesta de error con detalles sobre los errores de esquema.

Respuesta de error

Si envía una solicitud para cargar un manifiesto de aplicación que contiene información o errores que faltan, recibirá un mensaje de error que incluye el código UnableToParseTeamsAppManifestde error interno . La propiedad details del error interno contiene el código de error y el mensaje de error. En la tabla siguiente se describen los códigos de error que puede encontrar.


Respuesta de error
Código de error Mensaje de error Descripción
ActivityGroupIdFromActivitiesTypeValidation El campo ActivityGroupId de ActivityType debe ser un subconjunto del campo ID en ActivityGroup. El campo ActivityGroupId de ActivityType no es un subconjunto del campo Id de ActivityGroup en el manifiesto de la aplicación.
ActivityTypesMustExistWithActivitiesGroupValidation El manifiesto no debe contener un grupo de actividad cuando faltan tipos de actividad. La propiedad ActivityGroup está disponible, pero falta la propiedad ActivityType en el manifiesto de la aplicación.
ApiBasedComposeExtensionApiResponseRenderingTemplateFileNullOrEmpty La extensión de redacción basada en API debe tener apiResponseRenderingTemplateFile definido en el manifiesto. La extensión de redacción basada en API no tiene la apiResponseRenderingTemplateFile definida en el manifiesto de la aplicación.
ApiBasedComposeExtensionApiSpecificationFileNullOrEmpty La extensión de redacción basada en API debe tener apiSpecificationFile definido en el manifiesto. La extensión de redacción basada en API no tiene la apiSpecificationFile definida en el manifiesto de la aplicación.
ApiBasedComposeExtensionManifestCommandIdsNotIncludedInOperationIdsOnApiSpecficationFile Los identificadores de comando en el manifiesto no se incluyen en el archivo de especificación de identificadores de operación en la API. Error que se produce cuando los identificadores de comando del manifiesto de la aplicación no se incluyen en los identificadores de operación en el archivo de especificación de la API.
ApiBasedComposeExtensionWithBotId La extensión de redacción basada en API no puede tener botId definido. La extensión de redacción basada en API tiene botId definido en el manifiesto de la aplicación.
ApiBasedComposeExtensionWithCanUpdateConfiguration La extensión de redacción basada en API no puede tener canUpdateConfiguration definido en el manifiesto. La extensión de redacción basada en API tiene canUpdateConfiguration definido en el manifiesto de la aplicación.
ApiBasedComposeExtensionWithNoParameter La extensión de redacción basada en API debe tener parámetros de comando definidos en el manifiesto. La extensión de redacción basada en API no tiene ningún parámetro de comando definido en el manifiesto de la aplicación.
ApiSecretServiceAuthTypeComposeExtensionContainsMsftEntraConfiguration La extensión de redacción basada en API con apiSecretServiceAuth authType tiene definido microsoftEntraConfiguration. La extensión de redacción basada en API tiene microsoftEntraConfiguration definido en el manifiesto de la aplicación.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretRegistrationId La extensión de redacción basada en API con apiSecretServiceAuth authType no tiene ninguna apiSecretRegistrationId definida. La extensión de redacción basada en API con apiSecretServiceAuth authType sin apiSecretRegistrationId definido en el manifiesto de la aplicación.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretServiceAuthConfiguration La extensión de redacción basada en API con apiSecretServiceAuth authType no tiene apiSecretServiceConfiguration. La extensión de redacción basada en API no establece supportsSingleSignOn en true en el manifiesto de la aplicación.
ApiSpecificationFileContainUnsupportedHttpMethod La extensión de redacción basada en API tiene direcciones URL del servidor que tienen un método HTTP no compatible definido en apiSpecificationFile. Actualmente solo se admiten GET y POST. La extensión de redacción basada en API tiene un método HTTP no admitido definido en apiSpecificationFile.
ApiSpecificationFileParameterContainUnsupportedSchemaType La extensión de redacción basada en API no admite el tipo de esquema de parámetro definido en apiSpecificationFile.Arrays. La extensión de redacción basada en API tiene un tipo de esquema de parámetro no admitido definido en apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedMediaType La extensión de redacción basada en API tiene un tipo de medio no compatible definido en el cuerpo de la solicitud en apiSpecificationFile. Actualmente solo se admite application/json. La extensión de redacción basada en API tiene un tipo de medio no admitido definido en el cuerpo de la solicitud en apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedSchemaType La extensión de redacción basada en API tiene un tipo de esquema no compatible definido en el cuerpo de la solicitud en apiSpecificationFile. Actualmente no se admiten matrices. La extensión de redacción basada en API tiene un tipo de esquema no admitido definido en el cuerpo de la solicitud en apiSpecificationFile.
ApiSpecificationFileRequestBodySchemaContainKeywords La extensión de redacción basada en API tiene palabras clave. La extensión de redacción basada en API tiene palabras clave definidas en el cuerpo de la solicitud en apiSpecificationFile.
ApiSpecificationFileRequiredParameterContainUnsupportedLocation La extensión de redacción basada en API tiene una ubicación de parámetro no compatible definida en apiSpecificationFile para {0}. Actualmente solo se admiten la ruta de acceso y la consulta. La extensión de redacción basada en API tiene una ubicación de parámetro no compatible definida en apiSpecificationFile.
ApiSpecificationFileRequiredParameterOrPropertyNotDefinedOnManifest La extensión de redacción basada en API tiene parámetros o propiedades {0} necesarios no definidos en el manifiesto. La extensión de redacción basada en API tiene un parámetro necesario, que no se define en el manifiesto de la aplicación.
ApiSpecificationFileResponseContainUnsupportedMediaType La extensión de redacción basada en API tiene un tipo de medio no compatible definido en respuesta en apiSpecificationFile. Actualmente solo se admite application/json. La extensión de redacción basada en API tiene un tipo de medio no admitido definido en respuesta en apiSpecificationFile.
ApiSpecificationFileServerUrlsContainHttp La extensión de redacción basada en API tiene direcciones URL del servidor que tienen el protocolo HTTP definido en apiSpecificationFile. La extensión de redacción basada en API tiene direcciones URL del servidor que contienen el protocolo http en apiSpecificationFile.
ApiSpecificationFileServerUrlsContainInvalidUrl La extensión de redacción basada en API tiene direcciones URL de servidor que no son url no válidas definidas en apiSpecificationFile. La extensión de redacción basada en API tiene una dirección URL no válida definida en apiSpecificationFile.
BotBasedComposeExtensionApiResponseRenderingTemplateFileExists La extensión de redacción basada en bots no puede tener definida apiResponseRenderingTemplateFile. La extensión de redacción basada en bots tiene una propiedad apiResponseRenderingTemplateFile definida en el manifiesto de la aplicación.
BotBasedComposeExtensionApiSpecificationFileExists La extensión de redacción basada en bots no puede tener definida apiSpecificationFile. La extensión de redacción basada en bots tiene un archivo de especificación de API definido en el manifiesto de la aplicación.
BotBasedComposeExtensionBotIdNotGuid La extensión de redacción basada en bots debe tener guid botId. La extensión de redacción basada en bots botId no es GUID.
BotIdIsNotGuid BotId no es un valor Guid. El valor BotId del manifiesto de la aplicación no es un GUID.
CommonAppIdIsNotGuid El campo "ID" no es un Guid en el manifiesto. AppId no es GUID.
CommonAppIdIsRequiredField Falta el campo obligatorio "ID" en el manifiesto. No se proporciona el appId.
CommonManifestVersionIsRequiredField Falta el campo obligatorio del manifiesto "versión del manifiesto". No se proporciona la versión del manifiesto.
CommonSchemaUrlIsRequiredField La dirección URL del esquema debe estar presente. No se proporciona el esquema.
DashboardCardBothIconNameAndUrlPresent El icono de tarjetas de panel no debe contener el nombre y la dirección URL del icono. El icono de tarjetas de panel no debe contener el nombre y la dirección URL del icono.
DashboardCardEntityIdsAreNotUnique Los identificadores de entidad de tarjeta de panel deben ser únicos. El identificador de entidad devuelto para una tarjeta de panel no es único en el manifiesto.
DeveloperNameIsRequiredField Falta el campo obligatorio "nombre del desarrollador" en el manifiesto. No se proporciona el nombre del desarrollador.
DeveloperNameLengthCheck La longitud máxima de caracteres no debe superar los 32 caracteres. El nombre del desarrollador tiene más de 32 caracteres.
DeveloperPrivacyUrlIsRequiredField Falta el campo obligatorio "privacyUrl" en el manifiesto. Falta privacyUrl en el manifiesto de la aplicación.
DeveloperPrivacyUrlMustBeHttps La dirección URL de privacidad debe estar protegida como dirección URL de soporte técnico (HTTPS). La dirección URL de privacidad del desarrollador no usó HTTPS.
DeveloperTermsOfUseUrlIsRequiredField Falta el campo obligatorio 'termsOfUseUrl' en el manifiesto. Faltan los términosOfUseUrl en el manifiesto.
DeveloperTermsOfUseUrlMustBeHttps La dirección URL de los términos de uso debe estar protegida con la dirección URL de soporte técnico (HTTPS). La dirección URL de los términos de uso del desarrollador no usó HTTPS.
DeveloperWebsiteUrlIsRequiredField Falta el campo obligatorio 'websiteUrl' en el manifiesto. Falta la dirección URL del sitio web para desarrolladores.
DeveloperWebsiteUrlMustBeHttps La dirección URL del sitio web debe estar protegida como DIRECCIÓN URL de soporte técnico (HTTPS). La dirección URL del sitio web para desarrolladores no usó HTTPS.
FullDescriptionCannotBeEmpty La descripción completa no puede estar vacía. La descripción completa está vacía.
FullDescriptionLengthCheck La longitud máxima de caracteres para la descripción larga no debe superar los 4000 caracteres. La longitud de la descripción completa es de más de 4000 caracteres.
GroupChatForBotsLessThanV13 Actualice la versión del manifiesto a V1.3, ya que el bot de chat en grupo se admite en el manifiesto v1.3 en adelante. El ámbito groupChat para bots no se admite en la versión 1.3 y posteriores del manifiesto de la aplicación.
GroupChatForConfigurableTabsLessThanV13 Actualice la versión del manifiesto a V1.3, ya que las pestañas configurables de chat de grupo se admiten en el manifiesto v1.3 en adelante. El ámbito groupChat para pestañas configurables no se admite en la versión 1.3 del manifiesto de la aplicación y versiones posteriores.
InvalidColor32x32IconHeightAndWidth El icono de color 32x32 debe ser 32x32 con solo blanco y transparente. El icono de color 32x32 no tiene las dimensiones correctas.
InvalidColorIconHeightAndWidth Icono de color no es según la dimensión necesaria. Las dimensiones del icono de color son incorrectas.
InvalidOutlineIconHeightAndWidth El icono pequeño debe ser de 32 x 32 con solo blanco y transparente. Las dimensiones del icono de esquema son incorrectas.
InvalidOutlineIconTransparency El icono de esquema no es transparente. Es Alfa. El icono de esquema contiene píxeles que no son transparentes ni blancos, con valores Alfa, R, G, B de {0}, {1}, {2}y {3}.
MsftEntraAuthTypeComposeExtensionContainsApiSecretServiceConfiguration La extensión de redacción basada en API con microsoftEntra authType tiene definida apiSecretServiceConfiguration. La extensión de redacción basada en API tiene apiSecretServiceConfiguration definido en el manifiesto.
MsftEntraAuthTypeComposeExtensionContainsNoMsftEntraConfiguration La extensión de redacción basada en API con microsoftEntra authType no tiene definido microsoftEntraConfiguration. La extensión de redacción basada en API no tiene microsoftEntraConfiguration definido en el manifiesto de la aplicación.
MsftEntraAuthTypeComposeExtensionResourceURLNotMatchServerURLOnApiSpec La extensión de redacción basada en API con la dirección URL del recurso microsoftEntra authType en el manifiesto no coincide con la dirección URL del servidor en el archivo de especificación de API. La extensión de redacción basada en API con la dirección URL del recurso microsoftEntra authType en el manifiesto de aplicación no coincide con la dirección URL del servidor en el archivo de especificación de API.
MsftEntraAuthTypeComposeExtensionSupportsSingleSignOnFalse La extensión de redacción basada en API con microsoftEntra authType no establece supportsSingleSignOn en true. La extensión de redacción basada en API no establece supportsSingleSignOntrue en en el manifiesto de la aplicación.
MsftEntraAuthTypeComposeExtensionWebApplicationInfoOrResourceNotDefined La extensión de redacción basada en API con microsoftEntra authType no tiene webApplicationInfo ni ningún recurso definido en el manifiesto. La extensión de redacción basada en API con microsoftEntra authType no tiene webApplicationInfo o un recurso definido en el manifiesto de la aplicación.
NoAuthTypeComposeExtensionContainsAuthConfiguration La extensión de redacción basada en API con none authType tiene definida la configuración relacionada con la autenticación. La extensión de redacción basada en API con authType microsoftEntraConfiguration o apiSecretServiceConfiguration no está definida en el manifiesto de la aplicación.
ParameterOnManifestNotDefinedOnApiSpecFile La extensión de redacción basada en API tiene parámetros {0} en el manifiesto no definidos en el archivo de especificación de API. Los parámetros de extensión de redacción basados en API en el manifiesto de aplicación no se definen en el archivo de especificación de API.
ReservedActivitiesValidation El manifiesto no debe contener el tipo de actividad reservado "systemDefault". El tipo de actividad systemDefault se define en el manifiesto de la aplicación.
ReservedStaticTabNameShouldBeNull No se debe especificar la propiedad "Name" de la pestaña reservada. Se especificó la propiedad de nombre staticTabs reservada.
SchemaError_AdditionalItems El esquema no permite elementos adicionales. No se pudo validar additionalItems del esquema en el archivo de manifiesto de la aplicación.
SchemaError_AdditionalProperties No se ha definido la propiedad {0} y el esquema no permite propiedades adicionales. No se pudo validar additionalProperties del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa la propiedad adicional.
SchemaError_AllOf JSON no coincide con todos los esquemas de "allOf". El archivo de manifiesto de la aplicación no pudo validar allOf del esquema.
SchemaError_AnyOf JSON no coincide con ningún esquema de "anyOf". No se pudo validar anyOf del esquema en el archivo de manifiesto de la aplicación.
SchemaError_Const El valor {0} no coincide con la constante {1}. El archivo de manifiesto de la aplicación no pudo validar const el esquema. Aquí, {0} representa el valor que produjo un error y {1} representa el valor correcto.
SchemaError_Contains La matriz no contiene un elemento necesario. Error en el archivo de manifiesto de la aplicación que contiene la validación del esquema.
SchemaError_ContentEncoding La cadena {0} no se valida con la codificación de {1}contenido . No se pudo validar contentEncoding del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa la cadena que no coincide con la codificación de contenido y {1} representa la codificación de contenido esperada.
SchemaError_Dependencies Error en las dependencias de la propiedad {0} . Faltan las claves necesarias. El archivo de manifiesto de la aplicación no pudo validar las dependencias del esquema. Aquí, {0} representa la propiedad que produjo un error.
SchemaError_Else JSON no coincide con el esquema de "else". El archivo de manifiesto de la aplicación no pudo validar el esquema.
SchemaError_Enum El valor {0} no está definido en la enumeración. No se pudo validar la enumeración del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa el valor que no está en la enumeración.
SchemaError_Format La cadena {0} no se valida con el formato {1}. No se pudo validar el formato del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa la cadena que no está en el formato esperado y {1} representa el formato esperado.
SchemaError_Id Se encontró un identificador de {0} esquema duplicado. No se pudo validar el identificador del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa el identificador del esquema.
SchemaError_Maximum Integer {0} supera el valor máximo de {1}. El archivo de manifiesto de la aplicación produjo un error en la validación máxima del esquema. Aquí, {0} representa el valor que supera el límite máximo y {1} representa el límite máximo.
SchemaError_MaximumItems El recuento {0} de elementos de matriz supera el recuento máximo de {1}. No se pudo validar maximumItems del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa el número de elementos de la matriz y {1} representa el máximo permitido.
SchemaError_MaximumLength La cadena {0} supera la longitud máxima de {1}. No se pudo validar maximumLength del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa la cadena que supera la longitud máxima y {1} representa la longitud máxima.
SchemaError_MaximumProperties El recuento {0} de propiedades de objeto supera el recuento máximo de {1}. No se pudo validar maximumProperties del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa el número de propiedades proporcionadas y {1} representa las propiedades máximas permitidas.
SchemaError_Minimum Integer {0} es menor que el valor mínimo de {1}. El archivo de manifiesto de la aplicación no pudo validar el esquema como mínimo. Aquí, {0} representa el valor que supera el límite mínimo y {1} representa el límite mínimo.
SchemaError_MinimumItems El recuento {0} de elementos de matriz es menor que el número mínimo de {1}. No se pudo validar minimumItems del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa el número de elementos de la matriz y {1} representa el mínimo permitido.
SchemaError_MinimumLength La cadena {0} es menor que la longitud mínima de {1}. No se pudo validar minimumLength del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa la cadena que es menor que la longitud mínima y {1} representa el mínimo.
SchemaError_MinimumProperties El recuento {0} de propiedades de objeto es menor que el número mínimo de {1}. No se pudo validar minimumProperties del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa el número de propiedades proporcionadas y {1} representa las propiedades mínimas permitidas.
SchemaError_MultipleOf Integer {0} no es un múltiplo de {1}. El archivo de manifiesto de la aplicación no pudo validar multipleOf del esquema. Aquí, {0} representa el valor entero e {1} indica el múltiplo necesario.
SchemaError_Not JSON es válido para el esquema de "not". Error en el archivo de manifiesto de la aplicación al no validar el esquema.
SchemaError_OneOf JSON es válido en más de un esquema de "oneOf". No se pudo validar oneOf del esquema en el archivo de manifiesto de la aplicación.
SchemaError_Other El valor no se ajusta al esquema de esta propiedad. Error en el archivo de manifiesto de la aplicación en otras validaciones no controladas del esquema.
SchemaError_Pattern La cadena {0} no coincide con el patrón regex "{1}". No se pudo validar el patrón del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa el valor que no coincide con el patrón y {1} representa el patrón esperado.
SchemaError_PatternProperties No se pudieron probar los nombres de propiedad con el patrón regex "{0}". El archivo de manifiesto de la aplicación produjo un error en la validación patternProperties del esquema. Aquí, {0} representa el patrón de las propiedades.
SchemaError_Required Faltan propiedades necesarias en el objeto : {0}. No se pudo validar el esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa las propiedades necesarias.
SchemaError_Then JSON no coincide con el esquema de "then". El archivo de manifiesto de la aplicación no pudo validar el esquema.
SchemaError_Type El valor {0} no es del tipo {1}esperado. No se pudo validar el tipo del esquema en el archivo de manifiesto de la aplicación. Aquí, {0} representa la cadena que no está en el tipo esperado y {1} representa el tipo esperado.
SchemaError_UniqueItems La matriz contiene elementos que no son únicos. Error en la validación uniqueItems del esquema del archivo de manifiesto de la aplicación.
SchemaError_Valid El esquema siempre produce un error en la validación. Error en la validación válida del esquema en el archivo de manifiesto de la aplicación.
Serialization_FileMissing No se encontró el archivo {0} en el paquete de la aplicación. Falta el archivo esperado en el paquete de la aplicación.
Serialization_FileNotValidJson El archivo no se pudo analizar como un objeto JSON. El archivo enviado no cumplió con un formato JSON válido.
Serialization_ManifestVersionPropertyMissing El archivo no contiene la propiedad "{0}". Falta la propiedad manifestVersion en el archivo de manifiesto de la aplicación. Aquí, {0} representa la cadena de la propiedad manifestVersion .
Serialization_TrailingCommaInManifestJsonFile El archivo json de manifiesto contiene una coma final. El archivo de manifiesto de la aplicación contiene una coma final.
ServerUrlsMissingOnApiSpecificationFile La extensión de redacción basada en API no tiene ninguna dirección URL de servidor definida en apiSpecificationFile. Error que se produce La extensión de redacción basada en API no tiene ninguna dirección URL de servidor definida en apiSpecificationFile.
ShortDescriptionCannotBeEmpty La descripción breve no puede estar vacía La breve descripción estaba vacía.
ShortDescriptionLengthCheck La longitud máxima de caracteres para la descripción corta no debe superar los 80 caracteres. La descripción corta tiene más de 80 caracteres.
ShortNameEqualsReservedName El nombre corto de la aplicación no se puede reservar. El nombre corto es un nombre reservado.
ShortNameIsRequiredField El nombre corto de la aplicación no puede estar vacío. El nombre corto está vacío.
ShortNameLengthCheck La longitud máxima de caracteres para Nombre corto no debe superar los 30 caracteres. El nombre corto supera los 30 caracteres.
StaticTabNameCouldNotBeEmpty La propiedad "Name" de staticTabs no reservada no puede estar vacía. La propiedad staticTabs name está vacía.
UniqueActivityTypeInActivitiesValidation El manifiesto no debe contener un tipo de actividad duplicado. El tipo de actividad no es único en el manifiesto de la aplicación.
UniqueIdInActivitiesGroupValidation El manifiesto no debe contener un identificador duplicado en Grupos de actividad. El identificador del grupo de actividad no es único en el manifiesto de la aplicación.
VersionCannotBeEmpty Falta el campo obligatorio "version" en el manifiesto. Falta la versión del paquete de la aplicación.
VersionContainsOnlyNumbersDotSeparated La versión de la aplicación solo admite números en el formato "#.#.#". La versión del paquete de la aplicación no coincide con el patrón #.#.#.
VersionHasMajorLessThan1 La versión de la aplicación no debe comenzar con "0". Por ejemplo, 0.0.1 o 0.1 no son versiones de aplicación válidas y 1.0 / 1.5.1 / 1.0.0 / 2.5.0 son versiones de aplicación válidas. En caso de nueva actualización en el manifiesto a una aplicación existente en la tienda. La versión de la aplicación es menor que la 1.0. Debe actualizar la versión de la aplicación. Por ejemplo, si la versión actual de la aplicación en la tienda es 1.0 y envías una actualización para la validación, la versión de la aplicación debe ser mayor que la 1.0.

Ejemplos

Ejemplo 1: Publicación de una aplicación en el catálogo de aplicaciones

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

[Zip file containing a Teams app package]

Para obtener información sobre cómo crear un archivo zip de aplicación de Microsoft Teams, consulte Creación de un paquete de aplicación.

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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"
}

Ejemplo 2: Carga de una nueva aplicación para su revisión en el catálogo de aplicaciones de una organización

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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"
}

Ejemplo 3: Aprobación o rechazo de una aplicación pendiente de revisión

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

{
  "publishingState":"published"
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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
}

Ejemplo 4: Publicación de una aplicación con un error en el manifiesto de la aplicación en el catálogo de aplicaciones

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

[Zip file containing a Teams app package]

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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"
        }
    }
}