Freigeben über


TeamsApp auflisten

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Auflisten von Apps aus dem Microsoft Teams-App-Katalog.

Dazu gehören Apps aus dem Microsoft Teams Store und Apps aus dem App-Katalog Ihrer Organisation (der Mandanten-App-Katalog). Um Apps nur aus dem App-Katalog Ihrer Organisation abzurufen, geben Sie organization in der Anforderung als distributionMethod an.

Hinweis

Im Allgemeinen wird die ID einer teamsApp-Ressource vom Server generiert. Es ist nicht identisch mit der id , die in einem Teams-App-Manifest angegeben wird, es sei denn, seine distributionMethod ist store. In anderen Fällen wird die vom Entwickler als Teil des Teams-App-Manifests bereitgestellte ID in der ressource teamsApp als externalId gestempelt.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) AppCatalog.Submit AppCatalog.Read.All, AppCatalog.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung AppCatalog.Read.All AppCatalog.ReadWrite.All

Hinweis

Die Berechtigungen Directory.Read.All und Directory.ReadWrite.All werden nur aus Gründen der Abwärtskompatibilität unterstützt. Es wird empfohlen, dass Sie Ihre Lösungen so aktualisieren, dass sie eine alternative Berechtigung verwenden und diese Berechtigungen in Zukunft nicht mehr verwenden.

HTTP-Anforderung

GET /appCatalogs/teamsApps

Optionale Abfrageparameter

Diese Methode unterstützt die $filterOData-Abfrageparameter , $selectund $expand zum Anpassen der Antwort.

Die Verwendung von $expand=AppDefinitions gibt weitere Informationen zum Zustand der App zurück, z. B. publishingState, der den Überprüfungsstatus der App-Übermittlung widerspiegelt und zurückgibt, ob eine App genehmigt, abgelehnt wird oder noch überprüft wird.

Anmerkung: Sie können nach jedem der Felder des teamsApp-Objekts filtern, um die Liste der Ergebnisse zu kürzen. Sie können beliebige der folgenden Filtervorgänge verwenden: Gleich, ungleich und oder nicht.

Anforderungsheader

Kopfzeile Wert
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.

Anforderungstext

Geben Sie keinen Anforderungstext für diese Methode an.

Antwort

Wenn die Methode erfolgreich verläuft, werden der 200 OK Antwortcode und eine Liste der teamsApp-Objekte im Antworttext zurückgegeben.

Beispiele

Beispiel 1: Auflisten aller mandantenspezifischen Anwendungen

Im folgenden Beispiel werden alle Anwendungen aufgelistet, die für Ihren Mandanten spezifisch sind.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Beispiel 2: Auflisten von Anwendungen mit einer bestimmten ID

Im folgenden Beispiel werden Anwendungen mit einer bestimmten ID aufgelistet.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Beispiel 3: Suchen einer Anwendung basierend auf der Manifest-ID der Teams-App

Im folgenden Beispiel werden Anwendungen aufgelistet, die mit der im Teams-App-Manifest angegebenen ID übereinstimmen. Im Beispiel lautet cf1ba4c7-f94e-4d80-ba90-5594b641a8eedie Manifest-ID der Teams-App .

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Beispiel 4: Auflisten von Anwendungen mit einer angegebenen ID und Zurückgeben des Übermittlungsüberprüfungsstatus

Im folgenden Beispiel werden Anwendungen mit einer bestimmten ID aufgelistet und appDefinitions erweitert, um den publishingState zurückzugeben, der den Übermittlungsüberprüfungsstatus der App widerspiegelt. Submitted bedeutet, dass die Überprüfung aussteht, bedeutet, published dass der Administrator die App genehmigt hat, und rejected bedeutet, dass der Administrator die App abgelehnt hat.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Beispiel 5: Auflisten der Details nur der Apps im Katalog, die einen Bot enthalten

Im folgenden Beispiel werden nur die Apps im Katalog aufgelistet, die einen Bot enthalten.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Beispiel 6: Auflisten der Nach App-Installationsbereich gefilterten Details von Apps

Im folgenden Beispiel werden nur die Apps aufgelistet, die im persönlichen Bereich eines Benutzers installiert werden können.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Beispiel 7: Auflisten von Anwendungen mit einer bestimmten ID und Rückgabe nur der ressourcenspezifischen Berechtigungen, die für die App erforderlich sind

Im folgenden Beispiel werden die Apps mit einer bestimmten ID aufgelistet und die ressourcenspezifischen Berechtigungen zurückgegeben, die ihr zugeordnet sind.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Beispiel 8: Auflisten von Details von Apps im App-Katalog, die Dashboardkarten enthalten

Im folgenden Beispiel werden nur Apps im App-Katalog aufgelistet, die eine Dashboardkarte enthalten.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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