Compartilhar via


Publicar teamsApp

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

Publicar uma aplicação no catálogo de aplicações do Microsoft Teams. Especificamente, esta API publica a aplicação no catálogo da sua organização (o catálogo de aplicações de inquilino); o recurso criado tem um valor de propriedade distributionMethod de organization.

A propriedade requiresReview permite que qualquer utilizador submeta uma aplicação para revisão por um administrador. Os administradores podem aprovar ou rejeitar estas aplicações através desta API ou do centro de administração do Microsoft Teams.

Esta API está disponível nas seguintes implementações de cloud nacionais.

Serviço global US Government L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegado (conta corporativa ou de estudante) AppCatalog.Submit AppCatalog.ReadWrite.All, Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Aplicativo Sem suporte. Sem suporte.

Observação

  • A Directory.ReadWrite.All permissão é suportada apenas para retrocompatibilidade. Recomendamos que você atualize suas soluções para usar uma permissão alternativa listada na tabela anterior e evite usar essas permissões daqui para frente.
  • A AppCatalog.Submit permissão permite-lhe submeter aplicações apenas para revisão e não para publicá-las no catálogo.

Solicitação HTTP

POST /appCatalogs/teamsApps

Para publicar uma aplicação que requer uma revisão:

POST /appCatalogs/teamsApps?requiresReview={Boolean}

Parâmetros de consulta

Propriedade Tipo Descrição
requiresReview Booliano Este parâmetro de consulta opcional aciona o processo de revisão da aplicação. Os utilizadores com privilégios de administrador podem submeter aplicações sem acionar uma revisão. Se os utilizadores quiserem pedir uma revisão antes da publicação, têm de definir requiresReview como true. Um utilizador com privilégios de administrador pode optar por não definir requiresReview ou definir o valor como false e a aplicação é aprovada e imediatamente publicada.

Cabeçalhos de solicitação

Cabeçalho Valor
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type aplicação/zip. Obrigatório.

Corpo da solicitação

No corpo do pedido, inclua um payload de manifesto zip do Teams. Para obter detalhes, veja Criar um pacote de aplicação.

Cada aplicação no catálogo de aplicações tem de ter um ID de manifesto exclusivo.

Resposta

Se for bem-sucedido, este método devolve um 200 OK código de resposta e um objeto teamsApp . Se o manifesto da aplicação tiver erros de validação, o pedido devolve uma resposta de erro com detalhes sobre os erros de esquema.

Resposta de erro

Se enviar um pedido para carregar um manifesto de aplicação que contenha informações ou erros em falta, receberá uma mensagem de erro que inclui o código UnableToParseTeamsAppManifestde erro interno . A propriedade details do erro interno contém o código de erro e a mensagem de erro. A tabela seguinte descreve os códigos de erro que poderá encontrar.


Resposta a erros
Código de erro Mensagem de erro Descrição
ActivityGroupIdFromActivitiesTypeValidation O campo ActivityGroupId em ActivityType tem de ser um subconjunto do campo ID em ActivityGroup. O campo ActivityGroupId em ActivityType não é um subconjunto do campo ID em ActivityGroup no manifesto da aplicação.
ActivityTypesMustExistWithActivitiesGroupValidation O manifesto não deve conter Grupo de Atividades quando os Tipos de Atividade estão em falta. A propriedade ActivityGroup está disponível, mas a propriedade ActivityType está em falta no manifesto da aplicação.
ApiBasedComposeExtensionApiResponseRenderingTemplateFileNullOrEmpty A extensão de composição baseada em API tem de ter apiResponseRenderingTemplateFile definido no manifesto. A extensão de composição baseada em API não tem a apiResponseRenderingTemplateFile definida no manifesto da aplicação.
ApiBasedComposeExtensionApiSpecificationFileNullOrEmpty A extensão de composição baseada em API tem de ter apiSpecificationFile definido no manifesto. A extensão de composição baseada em API não tem a apiSpecificationFile definida no manifesto da aplicação.
ApiBasedComposeExtensionManifestCommandIdsNotIncludedInOperationIdsOnApiSpecficationFile Os IDs de comando no manifesto não estão incluídos nos IDs da Operação no ficheiro de especificação da API. O erro que ocorre quando os IDs de Comando no manifesto da aplicação não são incluídos no ficheiro de especificação da Operação IDs na API.
ApiBasedComposeExtensionWithBotId A extensão de composição baseada em API não pode ter o botId definido. A extensão de composição baseada em API tem botId definido no manifesto da aplicação.
ApiBasedComposeExtensionWithCanUpdateConfiguration A extensão de composição baseada em API não pode ter canUpdateConfiguration definido no manifesto. A extensão de composição baseada em API tem canUpdateConfiguration definido no manifesto da aplicação.
ApiBasedComposeExtensionWithNoParameter A extensão de composição baseada em API tem de ter parâmetros de comando definidos no manifesto. A extensão de composição baseada em API não tem parâmetros de comando definidos no manifesto da aplicação.
ApiSecretServiceAuthTypeComposeExtensionContainsMsftEntraConfiguration A extensão de composição baseada em API com apiSecretServiceAuth authType tem microsoftEntraConfiguration definido. A extensão de composição baseada em API tem microsoftEntraConfiguration definido no manifesto da aplicação.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretRegistrationId A extensão de composição baseada em API com apiSecretServiceAuth authType não tem apiSecretRegistrationId definido. A extensão de composição baseada em API com apiSecretServiceAuth authType sem apiSecretRegistrationId definida no manifesto da aplicação.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretServiceAuthConfiguration A extensão de composição baseada em API com apiSecretServiceAuth authType não tem apiSecretServiceConfiguration. A extensão de composição baseada em API não define supportsSingleSignOn como verdadeiro no manifesto da aplicação.
ApiSpecificationFileContainUnsupportedHttpMethod A extensão de composição baseada em API tem URLs de servidor que têm um método http não suportado definido em apiSpecificationFile. Atualmente, só são suportados GET e POST. A extensão de composição baseada em API tem um método http não suportado definido no apiSpecificationFile.
ApiSpecificationFileParameterContainUnsupportedSchemaType A extensão de composição baseada em API tem um tipo de esquema de parâmetro não suportado definido em apiSpecificationFile.Arrays não são suportados. A extensão de composição baseada em API tem um tipo de esquema de parâmetro não suportado definido no apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedMediaType A extensão de composição baseada em API tem um tipo de suporte de dados não suportado definido no corpo do pedido em apiSpecificationFile. Atualmente, apenas a aplicação/json é suportada. A extensão de composição baseada em API tem um tipo de suporte de dados não suportado definido no corpo do pedido no apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedSchemaType A extensão de composição baseada em API tem um tipo de esquema não suportado definido no corpo do pedido em apiSpecificationFile. Atualmente, as matrizes não são suportadas. A extensão de composição baseada em API tem um tipo de esquema não suportado definido no corpo do pedido no apiSpecificationFile.
ApiSpecificationFileRequestBodySchemaContainKeywords A extensão de composição baseada em API tem palavras-chave. A extensão de composição baseada em API tem palavras-chave definidas no corpo do pedido no apiSpecificationFile.
ApiSpecificationFileRequiredParameterContainUnsupportedLocation A extensão de composição baseada em API tem uma localização de parâmetros não suportada definida em apiSpecificationFile para {0}. Atualmente, apenas o caminho e a consulta são suportados. A extensão de composição baseada em API tem uma localização de parâmetros não suportada definida no apiSpecificationFile.
ApiSpecificationFileRequiredParameterOrPropertyNotDefinedOnManifest A extensão de composição baseada em API tem parâmetros ou propriedades necessários não definidos {0} no manifesto. A extensão de composição baseada em API tem um parâmetro necessário, que não está definido no manifesto da aplicação.
ApiSpecificationFileResponseContainUnsupportedMediaType A extensão de composição baseada em API tem um tipo de suporte de dados não suportado definido em resposta em apiSpecificationFile. Atualmente, apenas a aplicação/json é suportada. A extensão de composição baseada em API tem um tipo de suporte de dados não suportado definido em resposta no apiSpecificationFile.
ApiSpecificationFileServerUrlsContainHttp A extensão de composição baseada em API tem URLs de servidor que têm o protocolo http definido em apiSpecificationFile. A extensão de composição baseada em API tem URLs de servidor que contêm o protocolo http no apiSpecificationFile.
ApiSpecificationFileServerUrlsContainInvalidUrl A extensão de composição baseada em API tem URLs de servidor que são URL inválidos definidos em apiSpecificationFile. A extensão de composição baseada em API tem um URL inválido definido no apiSpecificationFile.
BotBasedComposeExtensionApiResponseRenderingTemplateFileExists A extensão de composição baseada no bot não pode ter apiResponseRenderingTemplateFile definido. A extensão de composição baseada em bot tem uma propriedade apiResponseRenderingTemplateFile definida no manifesto da aplicação.
BotBasedComposeExtensionApiSpecificationFileExists A extensão de composição baseada em bots não pode ter apiSpecificationFile definido. A extensão de composição baseada em bot tem um ficheiro de especificação de API definido no manifesto da aplicação.
BotBasedComposeExtensionBotIdNotGuid A extensão de composição baseada no bot tem de ter o BOTId guid. O bot-based compose extension botId não é GUID.
BotIdIsNotGuid O BotId não é um valor guid. O valor botId no manifesto da aplicação não é um GUID.
CommonAppIdIsNotGuid O campo "ID" não é um Guid no manifesto. O appId não é GUID.
CommonAppIdIsRequiredField O campo "ID" necessário está em falta no manifesto. O appId não é fornecido.
CommonManifestVersionIsRequiredField O campo necessário no manifesto "Versão do manifesto" está em falta. A versão do manifesto não é fornecida.
CommonSchemaUrlIsRequiredField O URL do esquema tem de estar presente. O esquema não é fornecido.
DashboardCardBothIconNameAndUrlPresent O ícone de cartões de dashboard não deve conter o nome do ícone e o URL. O ícone de cartões de dashboard não pode conter o nome do ícone e o URL.
DashboardCardEntityIdsAreNotUnique Os IDs de entidade card do dashboard devem ser exclusivos. O ID de entidade devolvido de um dashboard card não é exclusivo no manifesto.
DeveloperNameIsRequiredField O campo necessário "nome do programador" está em falta no manifesto. O nome do programador não é fornecido.
DeveloperNameLengthCheck O comprimento máximo do caráter não pode exceder os 32 carateres. O nome do programador tem mais de 32 carateres.
DeveloperPrivacyUrlIsRequiredField O campo necessário "privacyUrl" está em falta no manifesto. O privacyUrl está em falta no manifesto da aplicação.
DeveloperPrivacyUrlMustBeHttps O URL de Privacidade tem de ter o URL de Suporte protegido (HTTPS). O URL de privacidade do programador não utilizou HTTPS.
DeveloperTermsOfUseUrlIsRequiredField O campo necessário "termsOfUseUrl" está em falta no manifesto. Os termosOfUseUrl estão em falta no manifesto.
DeveloperTermsOfUseUrlMustBeHttps O URL dos Termos de Utilização tem de ser protegido pelo URL de Suporte (HTTPS). O URL dos termos de utilização do programador não utilizou HTTPS.
DeveloperWebsiteUrlIsRequiredField O campo necessário "websiteUrl" está em falta no manifesto. O URL do site do programador está em falta.
DeveloperWebsiteUrlMustBeHttps O URL do Site tem de ter o URL de Suporte protegido (HTTPS). O URL do site do programador não utilizou HTTPS.
FullDescriptionCannotBeEmpty A Descrição Completa não pode estar vazia. A descrição completa está vazia.
FullDescriptionLengthCheck O comprimento máximo do caráter para uma descrição longa não pode exceder os 4000 carateres. O comprimento completo da descrição tem mais de 4000 carateres.
GroupChatForBotsLessThanV13 Atualize a versão do manifesto para V1.3, uma vez que o bot de chat de grupo é suportado no manifesto v1.3. O âmbito groupChat para bots não é suportado na versão 1.3 e abaixo do manifesto da aplicação.
GroupChatForConfigurableTabsLessThanV13 Atualize a versão do manifesto para V1.3, uma vez que os separadores configuráveis do chat de grupo são suportados no manifesto v1.3. O âmbito groupChat para separadores configuráveis não é suportado na versão 1.3 e abaixo do manifesto da aplicação.
InvalidColor32x32IconHeightAndWidth O ícone cor 32x32 deve ser 32x32 apenas com branco e transparente. O ícone de cor 32x32 não tem as dimensões corretas.
InvalidColorIconHeightAndWidth O Ícone de Cor não está de acordo com a dimensão necessária. As dimensões do ícone de cor estão incorretas.
InvalidOutlineIconHeightAndWidth O ícone pequeno deve ser 32x32 apenas com branco e transparente. As dimensões do ícone de destaque estão incorretas.
InvalidOutlineIconTransparency O ícone de destaque não é transparente. É Alpha. O ícone de destaque contém píxeis que não são transparentes nem brancos, com os valores Alfa, R, G, B de {0}, {1}, {2}e {3}.
MsftEntraAuthTypeComposeExtensionContainsApiSecretServiceConfiguration A extensão de composição baseada em API com microsoftEntra authType tem apiSecretServiceConfiguration definido. A extensão de composição baseada em API tem apiSecretServiceConfiguration definido no manifesto.
MsftEntraAuthTypeComposeExtensionContainsNoMsftEntraConfiguration A extensão de composição baseada em API com microsoftEntra authType não tem nenhuma microsoftEntraConfiguration definida. A extensão de composição baseada em API não tem microsoftEntraConfiguration definido no manifesto da aplicação.
MsftEntraAuthTypeComposeExtensionResourceURLNotMatchServerURLOnApiSpec A extensão de composição baseada em API com o URL de recurso microsoftEntra authType no manifesto não corresponde ao URL do servidor no ficheiro de especificação da API. A extensão de composição baseada em API com o URL de recurso microsoftEntra authType no manifesto da aplicação não corresponde ao URL do servidor no ficheiro de especificação da API.
MsftEntraAuthTypeComposeExtensionSupportsSingleSignOnFalse A extensão de composição baseada em API com microsoftEntra authType não define supportsSingleSignOn como true. A extensão de composição baseada em API não define supportsSingleSignOn como true no manifesto da aplicação.
MsftEntraAuthTypeComposeExtensionWebApplicationInfoOrResourceNotDefined A extensão de composição baseada em API com microsoftEntra authType não tem webApplicationInfo ou recurso definido no manifesto. A extensão de composição baseada em API com microsoftEntra authType não tem webApplicationInfo ou recurso definido no manifesto da aplicação.
NoAuthTypeComposeExtensionContainsAuthConfiguration A extensão de composição baseada em API sem nenhum authType tem configuração relacionada com autenticação definida. A extensão de composição baseada em API com authType microsoftEntraConfiguration ou apiSecretServiceConfiguration não está definida no manifesto da aplicação.
ParameterOnManifestNotDefinedOnApiSpecFile A extensão de composição baseada em API tem parâmetros {0} no manifesto não definidos no ficheiro de especificação da API. Os parâmetros de extensão de composição baseados em API no manifesto da aplicação não estão definidos no ficheiro de especificação da API.
ReservedActivitiesValidation O manifesto não deve conter o Tipo de Atividade reservado "systemDefault". O tipo de atividade systemDefault é definido no manifesto da aplicação.
ReservedStaticTabNameShouldBeNull A propriedade "Nome" do separador reservado não deve ser especificada. A propriedade reserved staticTabs name foi especificada.
SchemaError_AdditionalItems O esquema não permite itens adicionais. O ficheiro de manifesto da aplicação falhou na validação additionalItems do esquema.
SchemaError_AdditionalProperties A propriedade {0} não foi definida e o esquema não permite propriedades adicionais. O ficheiro de manifesto da aplicação falhou na validação de Propriedades adicionais do esquema. Aqui, {0} representa a propriedade adicional.
SchemaError_AllOf O JSON não corresponde a todos os esquemas de "allOf". O ficheiro de manifesto da aplicação falhou na validação allOf do esquema.
SchemaError_AnyOf O JSON não corresponde a nenhum esquema de "anyOf". O ficheiro de manifesto da aplicação falhou na validação anyOf do esquema.
SchemaError_Const O valor {0} não corresponde à constante {1}. O ficheiro de manifesto da aplicação falhou na validação do esquema. Aqui, {0} representa o valor que falhou e {1} representa o valor correto.
SchemaError_Contains A matriz não contém um item necessário. O ficheiro de manifesto da aplicação falhou e contém a validação do esquema.
SchemaError_ContentEncoding A {0} cadeia não é validada em relação à codificação {1}de conteúdo . O ficheiro de manifesto da aplicação falhou na validação contentEncoding do esquema. Aqui, {0} representa a cadeia que não corresponde à codificação de conteúdo e {1} representa a codificação de conteúdo esperada.
SchemaError_Dependencies As dependências da propriedade {0} falharam. Chaves necessárias em falta. O ficheiro de manifesto da aplicação falhou na validação das dependências do esquema. Aqui, {0} representa a propriedade que falhou.
SchemaError_Else O JSON não corresponde ao esquema de "else". O ficheiro de manifesto da aplicação falhou na validação do esquema.
SchemaError_Enum O valor {0} não está definido na enumeração. O ficheiro de manifesto da aplicação falhou na validação da enumeração do esquema. Aqui, {0} representa o valor que não está na enumeração.
SchemaError_Format A {0} cadeia não é validada em relação ao formato {1}. O ficheiro de manifesto da aplicação falhou na validação do formato do esquema. Aqui, {0} representa a cadeia que não está no formato esperado e {1} representa o formato esperado.
SchemaError_Id Foi encontrado um ID {0} de esquema duplicado. O ficheiro de manifesto da aplicação falhou na validação do ID do esquema. Aqui, {0} representa o ID do esquema.
SchemaError_Maximum O número inteiro {0} excede o valor máximo de {1}. O ficheiro de manifesto da aplicação falhou na validação máxima do esquema. Aqui, {0} representa o valor que excede o limite máximo e {1} representa o limite máximo.
SchemaError_MaximumItems A contagem {0} de itens de matriz excede a contagem máxima de {1}. O ficheiro de manifesto da aplicação falhou na validação maximumItems do esquema. Aqui, {0} representa o número de elementos na matriz e {1} representa o máximo permitido.
SchemaError_MaximumLength A {0} cadeia excede o comprimento máximo de {1}. O ficheiro de manifesto da aplicação falhou na validação maximumLength do esquema. Aqui, {0} representa a cadeia que excede o comprimento máximo e {1} representa o comprimento máximo.
SchemaError_MaximumProperties A contagem {0} de propriedades de objetos excede a contagem máxima de {1}. O ficheiro de manifesto da aplicação falhou na validação maximumProperties do esquema. Aqui, {0} representa o número de propriedades fornecidas e {1} representa as propriedades máximas permitidas.
SchemaError_Minimum O número inteiro {0} é inferior ao valor mínimo de {1}. O ficheiro de manifesto da aplicação falhou na validação mínima do esquema. Aqui, {0} representa o valor que excede o limite mínimo e {1} representa o limite mínimo.
SchemaError_MinimumItems A contagem {0} de itens de matriz é inferior à contagem mínima de {1}. O ficheiro de manifesto da aplicação falhou na validação minimumItems do esquema. Aqui, {0} representa o número de elementos na matriz e {1} representa o mínimo permitido.
SchemaError_MinimumLength A cadeia {0} é inferior ao comprimento mínimo de {1}. O ficheiro de manifesto da aplicação falhou na validação minimumLength do esquema. Aqui, {0} representa a cadeia que é inferior ao comprimento mínimo e {1} representa o mínimo.
SchemaError_MinimumProperties A contagem {0} de propriedades de objetos é inferior à contagem mínima de {1}. O ficheiro de manifesto da aplicação falhou na validação minimumProperties do esquema. Aqui, {0} representa o número de propriedades fornecidas e {1} representa as propriedades mínimas permitidas.
SchemaError_MultipleOf O número inteiro {0} não é um múltiplo de {1}. O ficheiro de manifesto da aplicação falhou na validação multipleOf do esquema. Aqui, {0} representa o valor inteiro e {1} indica o múltiplo necessário.
SchemaError_Not O JSON é válido em relação ao esquema de "não". O ficheiro de manifesto da aplicação falhou ao não validar o esquema.
SchemaError_OneOf O JSON é válido em relação a mais do que um esquema de "oneOf". O ficheiro de manifesto da aplicação falhou na validação oneOf do esquema.
SchemaError_Other O valor não está em conformidade com o esquema desta propriedade. O ficheiro de manifesto da aplicação falhou noutras validações não processadas do esquema.
SchemaError_Pattern A {0} cadeia não corresponde ao padrão regex "{1}". O ficheiro de manifesto da aplicação falhou na validação do padrão do esquema. Aqui, {0} representa o valor que não corresponde ao padrão e {1} representa o padrão esperado.
SchemaError_PatternProperties Não foi possível testar nomes de propriedades com o padrão regex "{0}". O ficheiro de manifesto da aplicação falhou na validação patternProperties do esquema. Aqui, {0} representa o padrão das propriedades.
SchemaError_Required As propriedades necessárias estão em falta no objeto: {0}. O ficheiro de manifesto da aplicação falhou na validação necessária do esquema. Aqui, {0} representa as propriedades necessárias.
SchemaError_Then O JSON não corresponde ao esquema de "então". O ficheiro de manifesto da aplicação falhou na validação do esquema.
SchemaError_Type O valor {0} não é do tipo {1}esperado. O ficheiro de manifesto da aplicação falhou na validação do tipo do esquema. Aqui, {0} representa a cadeia que não está no tipo esperado e {1} representa o tipo esperado.
SchemaError_UniqueItems Matriz contém itens que não são exclusivos. O ficheiro de manifesto da aplicação falhou na validação uniqueItems do esquema.
SchemaError_Valid O esquema falha sempre na validação. O ficheiro de manifesto da aplicação falhou na validação do esquema.
Serialization_FileMissing Não foi possível localizar o ficheiro {0} no pacote de aplicações. O ficheiro esperado está em falta no pacote da aplicação.
Serialization_FileNotValidJson Não foi possível analisar o ficheiro como um objeto JSON. O ficheiro submetido não estava em conformidade com um formato JSON válido.
Serialization_ManifestVersionPropertyMissing O ficheiro não contém a propriedade "{0}". A propriedade manifestVersion está em falta no ficheiro de manifesto da aplicação. Aqui, {0} representa a cadeia para a propriedade manifestVersion .
Serialization_TrailingCommaInManifestJsonFile O ficheiro json de manifesto contém vírgula à direita. O ficheiro de manifesto da aplicação contém uma vírgula à direita.
ServerUrlsMissingOnApiSpecificationFile A extensão de composição baseada em API não tem urls de servidor definidos em apiSpecificationFile. O erro que ocorre A extensão de composição baseada em API não tem urls de servidor definidos no apiSpecificationFile.
ShortDescriptionCannotBeEmpty A Breve Descrição não pode estar vazia A breve descrição estava vazia.
ShortDescriptionLengthCheck O comprimento máximo do caráter para a descrição abreviada não pode exceder os 80 carateres. A breve descrição tem mais de 80 carateres.
ShortNameEqualsReservedName O nome abreviado da aplicação não pode ser nome reservado. O nome abreviado é um nome reservado.
ShortNameIsRequiredField O nome abreviado da aplicação não pode estar vazio. O nome abreviado está vazio.
ShortNameLengthCheck O comprimento máximo do caráter para Nome Abreviado não pode exceder os 30 carateres. O nome abreviado excede os 30 carateres.
StaticTabNameCouldNotBeEmpty A propriedade "Nome" dosTabs estáticos não reservados não pode estar vazia. A propriedade staticTabs name está vazia.
UniqueActivityTypeInActivitiesValidation O manifesto não deve conter o Tipo de Atividade duplicado. O tipo de atividade não é exclusivo no manifesto da aplicação.
UniqueIdInActivitiesGroupValidation O manifesto não deve conter o ID duplicado na Atividade Grupos. O ID do grupo de atividades não é exclusivo no manifesto da aplicação.
VersionCannotBeEmpty O campo "versão" necessário está em falta no manifesto. A versão do pacote de aplicação está em falta.
VersionContainsOnlyNumbersDotSeparated A versão da aplicação suporta apenas números no formato "#.#.#". A versão no pacote de aplicação não corresponde ao padrão #.#.#.
VersionHasMajorLessThan1 A versão da aplicação não deve começar com "0". Por exemplo, 0.0.1 ou 0.1 não são versões de aplicações válidas e 1.0/1.5.1/ 1.0.0/ 2.5.0 são versões de aplicações válidas. No caso de uma nova atualização no manifesto para uma aplicação existente na loja. A versão da aplicação é inferior a 1.0. Tem de atualizar a versão da aplicação. Por exemplo, se a versão atual da sua aplicação na loja for a 1.0 e estiver a submeter uma atualização para validação, a versão da aplicação tem de ser superior a 1.0.

Exemplos

Exemplo 1: publicar uma aplicação no catálogo de aplicações

Solicitação

O exemplo a seguir mostra uma solicitação.

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

[Zip file containing a Teams app package]

Para obter informações sobre como criar um ficheiro zip de aplicação do Microsoft Teams, consulte Criar um pacote de aplicação.

Resposta

O exemplo a seguir mostra a resposta.

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

Exemplo 2: Carregar uma nova aplicação para revisão para o catálogo de aplicações de uma organização

Solicitação

O exemplo a seguir mostra uma solicitação.

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

Resposta

O exemplo a seguir mostra a resposta.

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

Exemplo 3: Aprovar ou rejeitar uma aplicação pendente de revisão

Solicitação

O exemplo a seguir mostra uma solicitação.

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

{
  "publishingState":"published"
}

Resposta

O exemplo a seguir mostra a resposta.

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
}

Exemplo 4: Publicar uma aplicação com um erro no manifesto da aplicação no catálogo de aplicações

Solicitação

O exemplo a seguir mostra uma solicitação.

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

[Zip file containing a Teams app package]

Resposta

O exemplo a seguir mostra a resposta.

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