Compartilhar via


Listar 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.

Listar aplicações do catálogo de aplicações do Microsoft Teams.

Isto inclui aplicações da loja Microsoft Teams e aplicações do catálogo de aplicações da sua organização (o catálogo de aplicações de inquilino). Para obter aplicações apenas do catálogo de aplicações da sua organização, especifique organization como distributionMethod no pedido.

Observação

Em geral, o ID de um recurso teamsApp é gerado pelo servidor. Não é o mesmo que o ID especificado num manifesto de aplicação do Teams, a menos que a respetiva distribuiçãoMethod seja store. Noutros casos, o ID fornecido pelo programador como parte do manifesto da aplicação Teams é carimbado como externalId no recurso teamsApp .

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.Read.All, AppCatalog.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application AppCatalog.Read.All AppCatalog.ReadWrite.All

Observação

As permissões Directory.Read.All e Directory.ReadWrite.All são suportadas apenas para retrocompatibilidade. Recomendamos que atualize as suas soluções para utilizar uma permissão alternativa e evite utilizar estas permissões no futuro.

Solicitação HTTP

GET /appCatalogs/teamsApps

Parâmetros de consulta opcionais

Este método suporta os $filterparâmetros de consulta , $selecte $expandOData para ajudar a personalizar a resposta.

A utilização $expand=AppDefinitions devolve mais informações sobre o estado da aplicação, como publishingState, que reflete o estado de revisão da submissão da aplicação e devolve se uma aplicação é aprovada, rejeitada ou permanece em análise.

Nota: Pode filtrar em qualquer um dos campos do objeto teamsApp para encurtar a lista de resultados. Pode utilizar qualquer uma das seguintes operações de filtro: Igual, não igual, e ou não.

Cabeçalhos de solicitação

Cabeçalho Valor
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.

Corpo da solicitação

Não forneça um corpo de solicitação para esse método.

Resposta

Se for bem-sucedido, este método devolve um 200 OK código de resposta e uma lista de objetos teamsApp no corpo da resposta.

Exemplos

Exemplo 1: Listar todas as aplicações específicas do inquilino

O exemplo seguinte lista todas as aplicações específicas do seu inquilino.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET https://graph.microsoft.com/beta/appCatalogs/teamsApps?$filter=distributionMethod eq 'organization'

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "value": [
    {
      "id": "b1c5353a-7aca-41b3-830f-27d5218fe0e5",
      "externalId": "f31b1263-ba99-435a-a679-911d24850d7c",
      "displayName": "Test App",
      "distributionMethod": "organization"
    }
  ]
}

Exemplo 2: listar aplicações com um determinado ID

O exemplo seguinte lista as aplicações com um determinado ID.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET https://graph.microsoft.com/beta/appCatalogs/teamsApps?$filter=id eq 'b1c5353a-7aca-41b3-830f-27d5218fe0e5'

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "value": [
    {
      "id": "b1c5353a-7aca-41b3-830f-27d5218fe0e5",
      "externalId": "f31b1263-ba99-435a-a679-911d24850d7c",
      "displayName": "Test App",
      "distributionMethod": "organization"
    }
  ]
}

Exemplo 3: localizar a aplicação com base no ID de manifesto da aplicação Teams

O exemplo seguinte lista as aplicações que correspondem ao ID especificado no manifesto da aplicação Teams. No exemplo, o ID de manifesto da aplicação Teams é cf1ba4c7-f94e-4d80-ba90-5594b641a8ee.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET  https://graph.microsoft.com/beta/appCatalogs/teamsApps?$filter=externalId eq 'cf1ba4c7-f94e-4d80-ba90-5594b641a8ee'

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",
    "value": [
        {
            "id": "22f73bbe-f67a-4dea-bd54-54cac718cb2b",
            "externalId": "cf1ba4c7-f94e-4d80-ba90-5594b641a8ee",
            "displayName": "YPA",
            "distributionMethod": "organization"
        }
    ]
  }

Exemplo 4: Listar aplicações com um determinado ID e devolver o estado de revisão da submissão

O exemplo seguinte lista as aplicações com um determinado ID e expande appDefinitions para devolver o publishingState, que reflete o estado de revisão da submissão da aplicação. Submitted significa que a revisão está pendente, published significa que o administrador aprovou a aplicação e rejected significa que o administrador rejeitou a aplicação.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET  https://graph.microsoft.com/beta/appCatalogs/teamsApps?$filter=id eq '876df28f-2e78-423b-94a5-44181bd0e225'&$expand=appDefinitions

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "value": [
    {
      "id": "876df28f-2e78-423b-94a5-44181bd0e225",
      "externalId": "f31b1263-ba99-435a-a679-911d24850d7c",
      "displayName": "Test App",
      "distributionMethod": "Organization",
      "appDefinitions": [
        {
          "id": "NGQyMGNiNDUtZWViYS00ZTEyLWE3YzktMGQ0NDgzYjYxNzU2IyMxLjAuMA==",
          "teamsAppId": "876df28f-2e78-423b-94a5-44181bd0e225",
          "displayName": "Test App",
          "version": "1.0.1",
          "publishingState": "published",
          "shortDescription": "Types Of Cards.",
          "description": "This sample shows the feature where user can send different types of cards using bot.",
          "lastModifiedDateTime": "2020-11-23T21:36:00.9437445Z",
          "createdBy": null 
        }
      ]
    }
  ]
}

Exemplo 5: Listar os detalhes apenas das aplicações no catálogo que contêm um bot

O exemplo seguinte lista apenas as aplicações no catálogo que contêm um bot.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET  https://graph.microsoft.com/beta/appCatalogs/teamsApps?$expand=appDefinitions($expand=bot)&$filter=appDefinitions/any(a:a/bot ne null)

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(appDefinitions(bot()))",
    "value": [
        {
            "id": "8a1ed7a3-5c78-46b2-8504-f9da00a1d1a6",
            "externalId": "3CAB7543-216D-47C6-986C-6247670F4663",
            "displayName": "Ducks-3",
            "distributionMethod": "organization",
            "appDefinitions": [
                {
                    "@odata.etag": "ImNOTW1CR2V1VzgwczlEblVidU00UHc9PSI=",
                    "id": "OGExZWQ3YTMtNWM3OC00NmIyLTg1MDQtZjlkYTAwYTFkMWE2IyMxLjAuOSMjUmVqZWN0ZWQ=",
                    "teamsAppId": "8a1ed7a3-5c78-46b2-8504-f9da00a1d1a6",
                    "displayName": "Ducks-3",
                    "version": "1.0.9",                  
                    "publishingState": "rejected",
                    "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": "2020-11-23T21:36:00.9437445Z",
                    "createdBy": {
                        "application": null,
                        "device": null,
                        "conversation": null,
                        "user": {
                            "id": "70292a90-d2a7-432c-857e-55db6d8f5cd0",
                            "displayName": null,
                            "userIdentityType": "aadUser"
                        }
                    },
                    "bot": {
                        "id": "bb9f67a4-893b-48d7-ab17-40ed466c0f16"
                    }
                }
            ]
        },
        {
            "id": "30909dee-f7dd-4f89-8b3b-55de2e32489c",
            "externalId": "0ebd3f4d-ca91-495b-a227-a17d298e22cc",
            "displayName": "Self-Install-App-E2E-Tests",
            "distributionMethod": "organization",
            "appDefinitions": [
                {
                    "@odata.etag": "IkwzVDlMOTBSSEdTMFducHUyYkpjVmc9PSI=",
                    "id": "MzA5MDlkZWUtZjdkZC00Zjg5LThiM2ItNTVkZTJlMzI0ODljIyM2LjAuMCMjU3VibWl0dGVk",
                    "teamsAppId": "30909dee-f7dd-4f89-8b3b-55de2e32489c",                
                    "displayName": "Self-Install-App-E2E-Tests",
                    "version": "6.0.0",
                    "publishingState": "submitted",
                    "shortDescription": "A conversational smart assistant from MSX that surfaces real-time insights.",
                    "description": "For MSX Users: A conversational role-based smart assistant that will enable Enterprise sellers (AE, ATS, SSP, TSP) to be more productive by surfacing real-time insights, recommendations, actions and notifications, and by automating repetitive tasks.",
                    "lastModifiedDateTime": "2020-08-25T18:40:13.035341Z",
                    "createdBy": {
                        "application": null,
                        "device": null,
                        "conversation": null,
                        "user": {
                            "id": "c071a180-a220-43a1-adaf-e8db95c4a7d6",
                            "displayName": null,
                            "userIdentityType": "aadUser"
                        }
                    },
                    "bot": {
                        "id": "da7d471b-de7d-4152-8556-1cdf7a564f6c"
                    }
                }
            ]
        }
    ]
}

Exemplo 6: Listar os detalhes das aplicações filtradas pelo âmbito de instalação da aplicação

O exemplo seguinte lista apenas as aplicações que podem ser instaladas no âmbito pessoal de um utilizador.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET  https://graph.microsoft.com/beta/appCatalogs/teamsApps?$expand=appDefinitions($select=id,displayName,allowedInstallationScopes)&$filter=appDefinitions/any(a:a/allowedInstallationScopes has 'personal')

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(appDefinitions(id,displayName,allowedInstallationScopes))",
    "value": [
        {
            "id": "5a542e1c-5f8c-4793-8b0c-6082464b2378",
            "externalId": "4b3ec336-b998-4623-9e25-d4182fb82159",
            "displayName": "Carriage",
            "distributionMethod": "organization",
            "appDefinitions": [
                {
                    "id": "MWE1NDJlMWMtNWY4Yy00NzkzLThiMGMtNjA4MjQ2NGIyMzc4IyMxLjAuMCMjUHVibGlzaGVk",
                    "displayName": "Carriage",
                    "allowedInstallationScopes": "personal"
                }
            ]
        }
    ]
}

Exemplo 7: Listar aplicações com um determinado ID e devolver apenas as permissões específicas do recurso exigidas pela aplicação

O exemplo seguinte lista as aplicações com um determinado ID e devolve as permissões específicas do recurso que estão associadas às mesmas.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET  https://graph.microsoft.com/beta/appCatalogs/teamsApps?$filter=id+eq+'a5228c26-a9ae-4702-90e0-79a5246d2f7d'&$expand=appDefinitions($select=id,authorization)

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(appDefinitions(id,authorization))",
    "value": [
        {
            "id": "a5228c26-a9ae-4702-90e0-79a5246d2f7d",
            "externalId": "a55ec032-36e9-4b60-b604-34b2fe55abf1",
            "displayName": "teamsDelegatedRscTests",
            "distributionMethod": "organization",
            "appDefinitions@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps('a5228c26-a9ae-4702-90e0-79a5246d2f7d')/appDefinitions(id,authorization)",
            "appDefinitions": [
                {
                    "id": "YTUyMjhjMjYtYTlhZS00NzAyLTkwZTAtNzlhNTI0NmQyZjdkIyMxLjAuMCMjUHVibGlzaGVk",
                    "authorization": {
                        "requiredPermissionSet": {
                            "resourceSpecificPermissions": [
                                {
                                    "permissionValue": "Channel.Create.Group",
                                    "permissionType": "application"
                                },
                                {
                                    "permissionValue": "Channel.Delete.Group",
                                    "permissionType": "application"
                                },
                                {
                                    "permissionValue": "ChannelMeeting.ReadBasic.Group",
                                    "permissionType": "delegated"
                                }
                            ]
                        }
                    }
                }
            ]
        }
    ]
}

Exemplo 8: Listar os detalhes das aplicações no catálogo de aplicações que contêm cartões de dashboard

O exemplo seguinte lista apenas as aplicações no catálogo de aplicações que contêm um cartão de dashboard.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET https://graph.microsoft.com/beta/appCatalogs/teamsApps?$expand=appDefinitions($expand=dashboardCards)&$filter=appDefinitions/any(a:a/dashboardCards/$count+ne+0)

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(appDefinitions(dashboardCards()))",
  "value": [
    {
      "id": "ff43cabf-9244-4260-a68e-5403ec648e96",
      "externalId": "c8d1b752-2762-4e8c-9aba-3537d339e17a",
      "displayName": "Dashboard Card App",
      "distributionMethod": "organization",
      "appDefinitions@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps('ff43cabf-9244-4260-a68e-5403ec648e96')/appDefinitions(dashboardCards())",
      "appDefinitions": [
        {
          "id": "ZmY0M2NhYmYtOTI0NC00MjYwLWE2OGUtNTQwM2VjNjQ4ZTk2IyMxLjAuMCMjUHVibGlzaGVk",
          "teamsAppId": "ff43cabf-9244-4260-a68e-5403ec648e96",
          "azureADAppId": null,
          "displayName": "Dashboard Card App",
          "version": "1.0.0",
          "requiredResourceSpecificApplicationPermissions": [],
          "publishingState": "published",
          "shortdescription": "Test app with dashboard cards",
          "description": "Test app with dashboard cards",
          "lastModifiedDateTime": null,
          "allowedInstallationScopes": "team,groupChat,personal",
          "serializedInternalDefinition": null,
          "createdBy": null,
          "authorization": {
            "requiredPermissionSet": {
              "resourceSpecificPermissions": []
            }
          },
          "dashboardCards@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps('ff43cabf-9244-4260-a68e-5403ec648e96')/appDefinitions('ZmY0M2NhYmYtOTI0NC00MjYwLWE2OGUtNTQwM2VjNjQ4ZTk2IyMxLjAuMCMjUHVibGlzaGVk')/dashboardCards",
          "dashboardCards": [
            {
              "id": "210a65de-24ce-445e-9e1e-dd4ef0f0114b",
              "displayName": "sample1",
              "description": "this is the first sample of the card",
              "pickerGroupId": "110a65de-24ce-445e-9e1e-dd4ef0f0114b",
              "defaultSize": "large",
              "icon": {
                "iconUrl": null,
                "officeUIFabricIconName": "VivaLogo"
              },
              "contentSource": {
                "sourceType": "bot",
                "botConfiguration": {
                  "botId": "19806762-da13-422d-837a-f1061bc1f572"
                }
              }
            },
            {
              "id": "210a65de-24ce-445e-9e1e-dd4ef0f0114a",
              "displayName": "sample2",
              "description": "Second sample of dashboard card.",
              "pickerGroupId": "110b65de-24ce-445e-9e1e-dd4ef0f0114b",
              "defaultSize": "medium",
              "icon": {
                "iconUrl": "https://publiccdn.contoso.com/icons/card-icon.svg",
                "officeUIFabricIconName": null
              },
              "contentSource": {
                "sourceType": "bot",
                "botConfiguration": {
                  "botId": "19806762-da13-422d-837a-f1061bc1f672"
                }
              }
            }
          ]
        }
      ]
    },
    {
      "id": "4c3aa29d-ea6b-4e68-9ae0-9e6f1251eea0",
      "externalId": "c85a15d9-b835-49f4-99d6-a5cbe89734d3",
      "displayName": "Dashboard Card Test",
      "distributionMethod": "organization",
      "appDefinitions@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps('4c3aa29d-ea6b-4e68-9ae0-9e6f1251eea0')/appDefinitions(dashboardCards())",
      "appDefinitions": [
        {
          "id": "NGMzYWEyOWQtZWE2Yi00ZTY4LTlhZTAtOWU2ZjEyNTFlZWEwIyMxLjAuMCMjUHVibGlzaGVk",
          "teamsAppId": "4c3aa29d-ea6b-4e68-9ae0-9e6f1251eea0",
          "azureADAppId": null,
          "displayName": "Dashboard Card Test",
          "version": "1.0.0",
          "requiredResourceSpecificApplicationPermissions": [],
          "publishingState": "published",
          "shortdescription": "Test app with dashboard cards",
          "description": "Test app with dashboard cards",
          "lastModifiedDateTime": null,
          "allowedInstallationScopes": "team,groupChat,personal",
          "serializedInternalDefinition": null,
          "createdBy": null,
          "authorization": {
            "requiredPermissionSet": {
              "resourceSpecificPermissions": []
            }
          },
          "dashboardCards@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps('4c3aa29d-ea6b-4e68-9ae0-9e6f1251eea0')/appDefinitions('NGMzYWEyOWQtZWE2Yi00ZTY4LTlhZTAtOWU2ZjEyNTFlZWEwIyMxLjAuMCMjUHVibGlzaGVk')/dashboardCards",
          "dashboardCards": [
            {
              "id": "210a65de-24ce-445e-9e1e-dd4ef0f0114b",
              "displayName": "sample1",
              "description": "this is the first sample of the card",
              "pickerGroupId": "110a65de-24ce-445e-9e1e-dd4ef0f0114b",
              "defaultSize": "large",
              "icon": {
                "iconUrl": null,
                "officeUIFabricIconName": "VivaLogo"
              },
              "contentSource": {
                "sourceType": "bot",
                "botConfiguration": {
                  "botId": "19806762-da13-422d-837a-f1061bc1f572"
                }
              }
            },
            {
              "id": "210a65de-24ce-445e-9e1e-dd4ef0f0114a",
              "displayName": "sample2",
              "description": "Second sample of dashboard card.",
              "pickerGroupId": "110b65de-24ce-445e-9e1e-dd4ef0f0114b",
              "defaultSize": "medium",
              "icon": {
                "iconUrl": "https://publiccdn.contoso.com/icons/card-icon.svg",
                "officeUIFabricIconName": null
              },
              "contentSource": {
                "sourceType": "bot",
                "botConfiguration": {
                  "botId": "19806762-da13-422d-837a-f1061bc1f672"
                }
              }
            }
          ]
        }
      ]
    }
  ]
}