Publicar teamsApp

Namespace: microsoft.graph

Publique um aplicativo no catálogo de aplicativos do Microsoft Teams. Especificamente, essa API publica o aplicativo no catálogo da sua organização (o catálogo de aplicativos do locatário); o recurso criado tem um valor de propriedade distributionMethod de organization.

A propriedade requiresReview permite que qualquer usuário envie um aplicativo para revisão por um administrador. Os administradores podem aprovar ou rejeitar esses aplicativos por meio dessa API ou do centro de administração do Microsoft Teams.

Essa API está disponível nas seguintes implantações de nuvem nacional.

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

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
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 tem suporte apenas para compatibilidade com versões anteriores. 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 que você envie aplicativos apenas para revisão, não para publicá-los no catálogo.

Solicitação HTTP

POST /appCatalogs/teamsApps

Para publicar um aplicativo que exija uma revisão:

POST /appCatalogs/teamsApps?requiresReview={Boolean}

Parâmetros de consulta

Propriedade Tipo Descrição
requiresReview Booliano Esse parâmetro de consulta opcional dispara o processo de revisão do aplicativo. Usuários com privilégios de administrador podem enviar aplicativos sem disparar uma revisão. Se os usuários quiserem solicitar uma revisão antes da publicação, eles devem definir requiresReview como true. Um usuário com privilégios de administrador pode optar por não definir requiresReview ou definir o valor como false e o aplicativo é aprovado e publicado imediatamente.

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 application/zip. Obrigatório.

Corpo da solicitação

No corpo da solicitação, inclua um conteúdo de manifesto zip do Teams. Para obter detalhes, consulte Criar um pacote do aplicativo.

Cada aplicativo no catálogo de aplicativos deve ter uma ID de manifesto exclusiva.

Resposta

Se for bem-sucedido, esse método retornará um código de 200 OK resposta e um objeto teamsApp . Se o manifesto do aplicativo tiver erros de validação, a solicitação retornará uma resposta de erro com detalhes sobre os erros de esquema.

Resposta de erro

Se você enviar uma solicitação para carregar um manifesto do aplicativo que contenha informações ausentes ou erros, 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 a seguir descreve os códigos de erro que você pode encontrar.


Resposta de erro
Código de erro Mensagem de erro Descrição
ActivityGroupIdFromActivitiesTypeValidation O campo ActivityGroupId em ActivityType deve ser um subconjunto do campo ID em ActivityGroup. O ActivityGroupId campo não ActivityType é um subconjunto do Id campo no ActivityGroup manifesto do aplicativo.
ActivityTypesMustExistWithActivitiesGroupValidation O manifesto não deve conter o grupo de atividades quando os tipos de atividade estiverem ausentes. A ActivityGroup propriedade está disponível, mas está ActivityType ausente no manifesto do aplicativo.
ApiBasedComposeExtensionApiResponseRenderingTemplateFileNullOrEmpty A extensão de composição baseada em API precisa ter apiResponseRenderingTemplateFile definida no manifesto. A extensão de composição baseada em API não tem o apiResponseRenderingTemplateFile definido no manifesto do aplicativo.
ApiBasedComposeExtensionApiSpecificationFileNullOrEmpty A extensão de composição baseada em API precisa ter apiSpecificationFile definido no manifesto. A extensão de composição baseada em API não tem o apiSpecificationFile definido no manifesto do aplicativo.
ApiBasedComposeExtensionManifestCommandIdsNotIncludedInOperationIdsOnApiSpecficationFile As IDs de comando no manifesto não estão incluídas nas IDs de Operação no arquivo de especificação de API. O erro que ocorre quando o manifesto Command Ids no aplicativo não está incluído no arquivo de Operation Ids especificação da API.
ApiBasedComposeExtensionWithBotId A extensão de composição baseada em API não pode ter botId definido. A extensão de redação baseada em API foi botId definida no manifesto do aplicativo.
ApiBasedComposeExtensionWithCanUpdateConfiguration A extensão de composição baseada em API não pode ter canUpdateConfiguration definido no manifesto. A extensão de redação baseada em API foi canUpdateConfiguration definida no manifesto do aplicativo.
ApiBasedComposeExtensionWithNoParameter A extensão de composição baseada em API precisa ter parâmetros de comando definidos no manifesto. A extensão de composição baseada em API não tem nenhum parâmetro de comando definido no manifesto do aplicativo.
ApiSecretServiceAuthTypeComposeExtensionContainsMsftEntraConfiguration Extensão de redação baseada em API com apiSecretServiceAuth authType tem microsoftEntraConfiguration definido. A extensão de redação baseada em API foi microsoftEntraConfiguration definida no manifesto do aplicativo.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretRegistrationId 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 definido no manifesto do aplicativo.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretServiceAuthConfiguration A extensão de composição baseada em API com apiSecretServiceAuth authType não tem apiSecretServiceConfiguration. A extensão de redação baseada em API não é definida supportsSingleSignOn como true no manifesto do aplicativo.
ApiSpecificationFileContainUnsupportedHttpMethod A extensão de composição baseada em API tem URLs de servidor com método http incompatível definido em apiSpecificationFile. Atualmente, há suporte apenas para GET e POST. A extensão de redação baseada em API tem um método incompatível http definido no apiSpecificationFile.
ApiSpecificationFileParameterContainUnsupportedSchemaType A extensão de composição baseada em API tem o tipo de esquema de parâmetro sem suporte definido em apiSpecificationFile. Não há suporte para matrizes. A extensão de composição baseada em API tem um tipo de esquema de parâmetro sem suporte definido no apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedMediaType A extensão de composição baseada em API tem um tipo de mídia incompatível definido no corpo da solicitação em apiSpecificationFile. Atualmente, há suporte apenas para application/json. A extensão de composição baseada em API tem um tipo sem suporte media definido no corpo da solicitação no apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedSchemaType A extensão de composição baseada em API tem o tipo de esquema incompatível definido no corpo da solicitação em apiSpecificationFile. Atualmente, não há suporte para matrizes. A extensão de redação baseada em API tem um tipo de esquema sem suporte definido no corpo da solicitação 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 da solicitação no apiSpecificationFile.
ApiSpecificationFileRequiredParameterContainUnsupportedLocation A extensão de composição baseada em API tem uma localização de parâmetro incompatível 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 um local de parâmetro sem suporte definido no apiSpecificationFile.
ApiSpecificationFileRequiredParameterOrPropertyNotDefinedOnManifest A extensão de composição baseada em API tem parâmetros obrigatórios ou propriedades {0} não definidas no manifesto. A extensão de composição baseada em API tem um required parâmetro, que não está definido no manifesto do aplicativo.
ApiSpecificationFileResponseContainUnsupportedMediaType A extensão de composição baseada em API tem o tipo de mídia incompatível definido em resposta em apiSpecificationFile. Atualmente, apenas application/json suportado. A extensão de redação baseada em API tem um tipo sem suporte media 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 no apiSpecificationFile. A extensão de redação baseada em API tem URLs de servidor que contêm http o apiSpecificationFileprotocolo no .
ApiSpecificationFileServerUrlsContainInvalidUrl A extensão de composição baseada em API tem URLs de servidor que são URLs inválidas definidas em apiSpecificationFile. A extensão de redação baseada em API tem uma invalid URL definida no apiSpecificationFile.
BotBasedComposeExtensionApiResponseRenderingTemplateFileExists A extensão de composição baseada em bot não pode ter apiResponseRenderingTemplateFile definido. A extensão de composição baseada em bot tem uma apiResponseRenderingTemplateFile propriedade definida no manifesto do aplicativo.
BotBasedComposeExtensionApiSpecificationFileExists A extensão de composição baseada em bot não pode ter apiSpecificationFile definido. A extensão de composição baseada em bot tem um arquivo de especificação de API definido no manifesto do aplicativo.
BotBasedComposeExtensionBotIdNotGuid A extensão de composição baseada em bot precisa ter GUID botId. A extensão botId de redação baseada em bot não é GUID.
BotIdIsNotGuid BotId não é um valor Guid. O BotId valor no manifesto do aplicativo não é um GUID.
CommonAppIdIsNotGuid O campo "ID" não é um Guid no manifesto. Não appId é GUID.
CommonAppIdIsRequiredField O campo obrigatório "ID" está ausente no manifesto. O appId não é fornecido.
CommonManifestVersionIsRequiredField O campo obrigatório no manifesto 'manifest Version' está ausente. A versão do manifesto não é fornecida.
CommonSchemaUrlIsRequiredField A URL do esquema deve estar presente. O esquema não é fornecido.
DashboardCardBothIconNameAndUrlPresent O ícone de cartões do painel não deve conter o nome do ícone e a URL. O ícone de cartões de painel não deve conter o nome do ícone e a URL.
DashboardCardEntityIdsAreNotUnique As IDs de entidade do dashboard card devem ser exclusivas. A ID da entidade retornada para um dashboard card não é exclusiva no manifesto.
DeveloperNameIsRequiredField O campo obrigatório "nome do desenvolvedor" está ausente no manifesto. O nome do desenvolvedor não é fornecido.
DeveloperNameLengthCheck O comprimento máximo do caractere não deve exceder 32 caracteres. O nome do desenvolvedor tem mais de 32 caracteres.
DeveloperPrivacyUrlIsRequiredField O campo obrigatório "privacyUrl" está ausente no manifesto. O privacyUrl está ausente no manifesto do aplicativo.
DeveloperPrivacyUrlMustBeHttps A URL de privacidade deve ser protegida URL de Suporte (HTTPS). A URL de privacidade do desenvolvedor não usou HTTPS.
DeveloperTermsOfUseUrlIsRequiredField O campo obrigatório "termsOfUseUrl" está ausente no manifesto. O termsOfUseUrl está ausente do manifesto.
DeveloperTermsOfUseUrlMustBeHttps A URL dos Termos de Uso deve ser protegida pela URL de Suporte (HTTPS). A URL dos termos de uso do desenvolvedor não usava HTTPS.
DeveloperWebsiteUrlIsRequiredField O campo obrigatório "websiteUrl" está ausente no manifesto. A URL do site do desenvolvedor está ausente.
DeveloperWebsiteUrlMustBeHttps A URL do site deve ser protegida URL de Suporte (HTTPS). A URL do site do desenvolvedor não usou HTTPS.
FullDescriptionCannotBeEmpty A descrição completa não pode estar vazia. A descrição completa está vazia.
FullDescriptionLengthCheck O comprimento máximo do caractere para descrições longas não deve exceder 4.000 caracteres. O comprimento completo da descrição é de mais de 4.000 caracteres.
GroupChatForBotsLessThanV13 Atualize a versão do manifesto para a V1.3, pois o bot de chat em grupo é compatível com o manifesto v1.3 em diante. Não groupChat há suporte para o escopo dos bots no manifesto do aplicativo versão 1.3 e inferior.
GroupChatForConfigurableTabsLessThanV13 Atualize a versão do manifesto para V1.3, pois as guias configuráveis de bate-papo em grupo são compatíveis com o manifesto v1.3 em diante. O groupChat escopo das guias configuráveis não é compatível com o manifesto do aplicativo versão 1.3 e abaixo.
InvalidColor32x32IconHeightAndWidth O ícone de cor 32x32 deve ser 32x32 apenas branco e transparente. O ícone da 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 branco e transparente. As dimensões do ícone de estrutura de tópicos estão incorretas.
InvalidOutlineIconTransparency O ícone de estrutura de tópicos não é transparente. É Alfa. O ícone de contorno contém pixels que não são transparentes nem brancos, com valores Alfa, R, G, B de {0}, {1}, {2}e {3}.
LocalizationSchemaIsMissing A propriedade "schema" está ausente no arquivo de localização. O arquivo de localização não tem a propriedade "schema".
LocalizationSchemaDoesNotFollowConventionalSchemaRegex O arquivo de localização não usa o URL de esquema correto: developer.microsoft.jsonschema URL. A URL do esquema no arquivo de localização não corresponde ao formato esperado: developer.microsoft.json.
LocalizationSchemaVersionIsNotTheSameAsTheManifestSchemaVersion A versão do esquema do arquivo de localização é diferente da versão do esquema do manifesto do aplicativo. A versão do esquema no arquivo de localização não corresponde à versão no manifesto do aplicativo.
MsftEntraAuthTypeComposeExtensionContainsApiSecretServiceConfiguration A extensão de composição baseada em API com microsoftEntra authType tem apiSecretServiceConfiguration definida. A extensão de composição baseada em API foi apiSecretServiceConfiguration definida no manifesto.
MsftEntraAuthTypeComposeExtensionContainsNoMsftEntraConfiguration A extensão de composição baseada em API com authType microsoftEntra não tem microsoftEntraConfiguration definida. A extensão de composição baseada em API não tem microsoftEntraConfiguration definido no manifesto do aplicativo.
MsftEntraAuthTypeComposeExtensionResourceURLNotMatchServerURLOnApiSpec Extensão de redação baseada em API com MicrosoftEntra A URL do recurso authType no manifesto não corresponde à URL do servidor no arquivo de especificação de API. A extensão de composição baseada em API com microsoftEntra a URL do recurso authType no manifesto do aplicativo não corresponde à URL do servidor no arquivo de especificação da API.
MsftEntraAuthTypeComposeExtensionSupportsSingleSignOnFalse A extensão de redaçã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 do aplicativo.
NoAuthTypeComposeExtensionContainsAuthConfiguration Extensão de composição baseada em API sem authType tem a configuração relacionada à autenticação definida. A extensão de redação baseada em API com authType microsoftEntraConfiguration ou apiSecretServiceConfiguration não está definida no manifesto do aplicativo.
ParameterOnManifestNotDefinedOnApiSpecFile A extensão de composição baseada em API tem parâmetros {0} no manifesto não definidos no arquivo de especificação da API. Os parâmetros de extensão de composição baseados em API no manifesto do aplicativo não estão definidos no arquivo de especificação da API.
ReservedActivitiesValidation O manifesto não deve conter o tipo de atividade reservado 'systemDefault'. O systemDefault tipo de atividade é definido no manifesto do aplicativo.
ReservedStaticTabNameShouldBeNull A propriedade "Nome" da guia reservada não deve ser especificada. A propriedade de nome reservado staticTabs foi especificada.
SchemaError_AdditionalItems O esquema não permite itens adicionais. O arquivo de manifesto do aplicativo falhou na additionalItems validação do esquema.
SchemaError_AdditionalProperties A propriedade {0} não foi definida e o esquema não permite propriedades adicionais. O arquivo de manifesto do aplicativo falhou na additionalProperties validação do esquema. Aqui, {0} representa a propriedade adicional.
SchemaError_AllOf O JSON não corresponde a todos os esquemas de "allOf". O arquivo de manifesto do aplicativo falhou na allOf validação do esquema.
SchemaError_AnyOf O JSON não corresponde a nenhum esquema de "anyOf". O arquivo de manifesto do aplicativo falhou na anyOf validação do esquema.
SchemaError_Const O valor {0} não corresponde à constante {1}. O arquivo de manifesto do aplicativo falhou na const validação do esquema. Aqui, {0} representa o valor que falhou e {1} representa o valor correto.
SchemaError_ContentEncoding A cadeia de caracteres {0} não é validada em relação à codificação {1}de conteúdo. O arquivo de manifesto do aplicativo falhou na contentEncoding validação do esquema. Aqui, {0} representa a cadeia de caracteres 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. Faltam as chaves necessárias. O arquivo de manifesto do aplicativo falhou na dependencies validação do esquema. Aqui, {0} representa a propriedade que falhou.
SchemaError_Else O JSON não corresponde ao esquema de "else". O arquivo de manifesto do aplicativo falhou na else validação do esquema.
SchemaError_Enum O valor {0} não está definido na enumeração. O arquivo de manifesto do aplicativo falhou na enum validação do esquema. Aqui, {0} representa o valor que não está na enumeração.
SchemaError_Format A cadeia de caracteres {0} não é validada em relação ao formato {1}. O arquivo de manifesto do aplicativo falhou na format validação do esquema. Aqui, {0} representa a cadeia de caracteres que não está no formato esperado e {1} representa o formato esperado.
SchemaError_Id ID de esquema {0} duplicada encontrada. O arquivo de manifesto do aplicativo falhou na id validação do esquema. Aqui, {0} representa o id do esquema.
SchemaError_Maximum O inteiro {0} excede o valor máximo de {1}. O arquivo de manifesto do aplicativo falhou na maximum validação 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 da matriz excede a contagem máxima de {1}. O arquivo de manifesto do aplicativo falhou na maximumItems validação do esquema. Aqui, {0} representa o número de elementos na matriz e {1} representa o máximo permitido.
SchemaError_MaximumLength A cadeia de caracteres {0} excede o comprimento máximo de {1}. O arquivo de manifesto do aplicativo falhou na maximumLength validação do esquema. Aqui, {0} representa a cadeia de caracteres que excede o comprimento máximo e {1} representa o comprimento máximo.
SchemaError_MaximumProperties A contagem {0} de propriedades do objeto excede a contagem máxima de {1}. O arquivo de manifesto do aplicativo falhou na maximumProperties validação do esquema. Aqui, {0} representa o número de propriedades fornecidas e {1} representa o máximo de propriedades permitidas.
SchemaError_Minimum Inteiro {0} é menor que o valor mínimo de {1}. O arquivo de manifesto do aplicativo falhou na minimum validação 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 da matriz é menor que a contagem mínima de {1}. O arquivo de manifesto do aplicativo falhou na minimumItems validação do esquema. Aqui, {0} representa o número de elementos na matriz e {1} representa o mínimo permitido.
SchemaError_MinimumLength A cadeia de caracteres {0} é menor que o comprimento mínimo de {1}. O arquivo de manifesto do aplicativo falhou na minimumLength validação do esquema. Aqui, {0} representa a cadeia de caracteres que é menor que o comprimento mínimo e {1} representa o mínimo.
SchemaError_MinimumProperties A contagem {0} de propriedades do objeto é menor que a contagem mínima de {1}. O arquivo de manifesto do aplicativo falhou na minimumProperties validação do esquema. Aqui, {0} representa o número de propriedades fornecidas e {1} representa as propriedades mínimas permitidas.
SchemaError_Not O JSON é válido em relação ao esquema de "not". O arquivo de manifesto do aplicativo falhou na not validação do esquema.
SchemaError_OneOf O JSON é válido em mais de um esquema de "oneOf". O arquivo de manifesto do aplicativo falhou na oneOf validação do esquema.
SchemaError_Pattern A cadeia de caracteres {0} não corresponde ao padrão regex "{1}". O arquivo de manifesto do aplicativo falhou na pattern validaçã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 arquivo de manifesto do aplicativo falhou na patternProperties validação do esquema. Aqui, {0} representa o padrão para as propriedades.
SchemaError_Required As propriedades necessárias estão ausentes de object: {0}. O arquivo de manifesto do aplicativo falhou na required validação do esquema. Aqui, {0} representa as propriedades necessárias.
SchemaError_Then O JSON não corresponde ao esquema de "then". O arquivo de manifesto do aplicativo falhou na then validação do esquema.
SchemaError_Type O valor {0} não é do tipo {1}esperado. O arquivo de manifesto do aplicativo falhou na type validação do esquema. Aqui, {0} representa a cadeia de caracteres que não está no tipo esperado e {1} representa o tipo esperado.
SchemaError_UniqueItems A matriz contém itens que não são exclusivos. O arquivo de manifesto do aplicativo falhou na uniqueItems validação do esquema.
SchemaError_Valid O esquema sempre falha na validação. O arquivo de manifesto do aplicativo falhou na valid validação do esquema.
Serialization_FileMissing Não foi possível localizar o arquivo {0} no pacote do aplicativo. O arquivo esperado está ausente no pacote do aplicativo.
Serialization_FileNotValidJson Não foi possível analisar o arquivo como um objeto JSON. O arquivo enviado não estava em conformidade com um formato JSON válido.
Serialization_ManifestVersionPropertyMissing O arquivo não contém a propriedade "{0}". A propriedade manifestVersion está ausente no arquivo de manifesto do aplicativo. Aqui, {0} representa a cadeia de caracteres para a propriedade manifestVersion .
Serialization_TrailingCommaInManifestJsonFile O arquivo json de manifesto contém vírgulas à direita. O arquivo de manifesto do aplicativo contém uma vírgula à direita.
ServerUrlsMissingOnApiSpecificationFile A extensão de composição baseada em API não tem URLs de servidor definidas em apiSpecificationFile. O erro que ocorre A extensão de redação baseada em API não tem urls de servidor definidas no apiSpecificationFile.
ShortDescriptionCannotBeEmpty A breve descrição não pode estar vazia. A breve descrição estava vazia.
ShortDescriptionLengthCheck O comprimento máximo de caracteres para descrições curtas não deve exceder 80 caracteres. A breve descrição tem mais de 80 caracteres.
ShortNameEqualsReservedName O nome abreviado do aplicativo não pode ser um nome reservado. O nome abreviado é um nome reservado.
ShortNameIsRequiredField O nome abreviado do aplicativo não pode estar vazio. O nome abreviado está vazio.
ShortNameLengthCheck O comprimento máximo de caracteres para o nome abreviado não deve exceder 30 caracteres. O nome abreviado excede 30 caracteres.
UniqueActivityTypeInActivitiesValidation O manifesto não deve conter o tipo de atividade duplicado. O tipo de atividade não é exclusivo no manifesto do aplicativo.
UniqueIdInActivitiesGroupValidation O manifesto não deve conter ID duplicada em Grupos de Atividades. A ID do grupo de atividades não é exclusiva no manifesto do aplicativo.
ValidDomainsContainsUrl A lista de domínios válidos deve incluir uma URL formatada corretamente. Os domínios especificados no arquivo de localização devem ser válidos.
VersionCannotBeEmpty O campo obrigatório "versão" está ausente no manifesto. A versão do pacote do aplicativo está ausente.
VersionContainsOnlyNumbersDotSeparated A versão do aplicativo suporta apenas números no formato '#.#.#'. A versão no pacote do aplicativo não é correspondida pelo padrão, #.#.#.
VersionHasMajorLessThan1 A versão do aplicativo não deve começar com "0". Por exemplo, 0.0.1 ou 0.1 não são versões válidas do aplicativo e 1.0 / 1.5.1 / 1.0.0 / 2.5.0 são versões válidas do aplicativo. Em caso de nova atualização no manifesto para um aplicativo existente na loja. A versão do aplicativo é inferior a 1.0. Você precisa atualizar a versão do seu aplicativo. Por exemplo, se a versão atual do seu aplicativo na loja for 1.0 e você estiver enviando uma atualização para validação, a versão do aplicativo deverá ser superior a 1.0.

Exemplos

Exemplo 1: publicar um aplicativo no catálogo de aplicativos

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]

Para obter informações sobre como criar um arquivo zip de aplicativo do Microsoft Teams, consulte Criar um pacote do aplicativo.

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 um novo aplicativo para análise no catálogo de aplicativos de uma organização

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/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/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"
}

Exemplo 3: aprovar ou rejeitar um aplicativo revisão pendente

Solicitação

O exemplo a seguir mostra uma solicitação.

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

Resposta

O exemplo a seguir mostra a resposta.

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
}

Exemplo 4: publicar um aplicativo no catálogo de aplicativos com um erro no manifesto do aplicativo

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