Partager via


Répertorier teamsApp

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Répertorier les applications du catalogue d’applications Microsoft Teams.

Cela inclut les applications du Magasin Microsoft Teams et les applications du catalogue d’applications de votre organisation (le catalogue d’applications client). Pour obtenir des applications à partir du catalogue d’applications de votre organisation uniquement, spécifiez organization en tant que distributionMethod dans la requête.

Remarque

En général, l’ID d’une ressource teamsApp est généré par le serveur. Il n’est pas identique à l’ID spécifié dans un manifeste d’application Teams, sauf si sa méthode de distribution est store. Dans d’autres cas, l’ID fourni par le développeur dans le cadre du manifeste de l’application Teams est marqué comme externalId dans la ressource teamsApp .

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) AppCatalog.Submit AppCatalog.Read.All, AppCatalog.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application AppCatalog.Read.All AppCatalog.ReadWrite.All

Remarque

Les autorisations Directory.Read.All et Directory.ReadWrite.All sont prises en charge uniquement pour la compatibilité descendante. Nous vous recommandons de mettre à jour vos solutions pour utiliser une autre autorisation et éviter d’utiliser ces autorisations à l’avenir.

Requête HTTP

GET /appCatalogs/teamsApps

Paramètres facultatifs de la requête

Cette méthode prend en charge les $filterparamètres de requête OData , $selectet $expand pour vous aider à personnaliser la réponse.

L’utilisation $expand=AppDefinitions de renvoie plus d’informations sur l’état de l’application, comme publishingState, qui reflète l’état de révision de la soumission de l’application et indique si une application est approuvée, rejetée ou reste en cours d’examen.

Note: Vous pouvez filtrer sur l’un des champs de l’objet teamsApp pour raccourcir la liste des résultats. Vous pouvez utiliser l’une des opérations de filtre suivantes : Égal à, différent et, ou, et non.

En-têtes de demande

En-tête Valeur
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.

Corps de la demande

N’indiquez pas le corps de la demande pour cette méthode.

Réponse

Si elle réussit, cette méthode renvoie un 200 OK code de réponse et une liste d’objets teamsApp dans le corps de la réponse.

Exemples

Exemple 1 : Répertorier toutes les applications spécifiques au locataire

L’exemple suivant répertorie toutes les applications spécifiques à votre locataire.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

Exemple 2 : Répertorier les applications avec un ID donné

L’exemple suivant répertorie les applications avec un ID donné.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

Exemple 3 : Rechercher une application basée sur l’ID de manifeste d’application Teams

L’exemple suivant répertorie les applications qui correspondent à l’ID spécifié dans le manifeste de l’application Teams. Dans l’exemple, l’ID de manifeste de l’application Teams est cf1ba4c7-f94e-4d80-ba90-5594b641a8ee.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

Exemple 4 : Répertorier les applications avec un ID donné et retourner l’état de révision de la soumission

L’exemple suivant répertorie les applications avec un ID donné et développe appDefinitions pour renvoyer l’objet publishingState, qui reflète l’état de révision de la soumission de l’application. Submitted signifie que la révision est en attente, published que l’administrateur a approuvé l’application et rejected que l’administrateur a rejeté l’application.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

Exemple 5 : Répertorier uniquement les détails des applications du catalogue qui contiennent un bot

L’exemple suivant répertorie uniquement les applications du catalogue qui contiennent un bot.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

Exemple 6 : Répertorier les détails des applications filtrées par étendue d’installation d’application

L’exemple suivant répertorie uniquement les applications qui peuvent être installées dans l’étendue personnelle d’un utilisateur.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

Exemple 7 : Répertorier les applications avec un ID donné et retourner uniquement les autorisations spécifiques à la ressource requises par l’application

L’exemple suivant répertorie les applications avec un ID donné et retourne les autorisations spécifiques à la ressource qui lui sont associées.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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": {
                        "clientAppId": "6ed63604-0ba7-4a28-bb3a-dda03ea18d54",
                        "requiredPermissionSet": {
                            "resourceSpecificPermissions": [
                                {
                                    "permissionValue": "Channel.Create.Group",
                                    "permissionType": "application"
                                },
                                {
                                    "permissionValue": "Channel.Delete.Group",
                                    "permissionType": "application"
                                },
                                {
                                    "permissionValue": "ChannelMeeting.ReadBasic.Group",
                                    "permissionType": "delegated"
                                }
                            ]
                        }
                    }
                }
            ]
        }
    ]
}

Exemple 8 : Répertorier les détails des applications dans le catalogue d’applications qui contiennent des cartes de tableau de bord

L’exemple suivant répertorie uniquement les applications du catalogue d’applications qui contiennent une carte de tableau de bord.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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": {
            "clientAppId": null,
            "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": {
            "clientAppId": null,
            "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"
                }
              }
            }
          ]
        }
      ]
    }
  ]
}