Enumerar teamsApp

Espacio de nombres: microsoft.graph

Enumera las aplicaciones del catálogo de aplicaciones de Microsoft Teams. Esto incluye las aplicaciones de la tienda de Microsoft Teams y las aplicaciones del catálogo de aplicaciones de la organización (el catálogo de aplicaciones de inquilino). Para obtener solo aplicaciones del catálogo de aplicaciones de la organización, especifique organization como distributionMethod en la solicitud.

Nota:

En general, el servidor genera el identificador de un recurso teamsApp . No es lo mismo que el identificador especificado en un manifiesto de aplicación de Teams, a menos que su distributionMethod sea store. En otros casos, el identificador proporcionado por el desarrollador como parte del manifiesto de aplicación de Teams se marca como externalId en el recurso teamsApp .

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) AppCatalog.Submit AppCatalog.Read.All, AppCatalog.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación AppCatalog.Read.All AppCatalog.ReadWrite.All

Nota:

Los permisos Directory.Read.All y Directory.ReadWrite.All solo se admiten por compatibilidad con versiones anteriores. Se recomienda actualizar las soluciones para usar un permiso alternativo y evitar el uso de estos permisos en el futuro.

Solicitud HTTP

GET /appCatalogs/teamsApps

Parámetros de consulta opcionales

Este método admite los $filterparámetros de consulta , $selecty $expand OData para ayudar a personalizar la respuesta.

El uso $expand=AppDefinitions devuelve más información sobre el estado de la aplicación, como publishingState, que refleja el estado de revisión del envío de la aplicación y devuelve si una aplicación se aprueba, rechaza o permanece bajo revisión.

Nota: Puede filtrar por cualquiera de los campos del objeto teamsApp para acortar la lista de resultados. Puede usar cualquiera de las siguientes operaciones de filtro: Igual, no igual y, o, y no.

Encabezados de solicitud

Encabezado Valor
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.

Cuerpo de la solicitud

No proporcione un cuerpo de solicitud para este método.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y una lista de objetos teamsApp en el cuerpo de la respuesta.

Ejemplos

Ejemplo 1: Enumerar todas las aplicaciones específicas del inquilino

En el ejemplo siguiente se enumeran todas las aplicaciones que son específicas del inquilino.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

Ejemplo 2: Enumerar aplicaciones con un identificador determinado

En el ejemplo siguiente se enumeran las aplicaciones con un identificador determinado.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

Ejemplo 3: Búsqueda de una aplicación basada en el identificador de manifiesto de aplicación de Teams

En el ejemplo siguiente se enumeran las aplicaciones que coinciden con el identificador especificado en el manifiesto de aplicación de Teams. En el ejemplo, el identificador de manifiesto de la aplicación teams es cf1ba4c7-f94e-4d80-ba90-5594b641a8ee.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#appCatalogs/teamsApps",
    "value": [
        {
            "id": "22f73bbe-f67a-4dea-bd54-54cac718cb2b",
            "externalId": "cf1ba4c7-f94e-4d80-ba90-5594b641a8ee",
            "displayName": "YPA",
            "distributionMethod": "organization"
        }
    ]
}

Ejemplo 4: Enumerar aplicaciones con un identificador determinado y devolver el estado de revisión de envío

En el ejemplo siguiente se enumeran las aplicaciones con un identificador determinado y se expande appDefinitions para devolver publishingState, que refleja el estado de revisión del envío de la aplicación. Submitted significa que la revisión está pendiente, published significa que el administrador aprobó la aplicación y rejected significa que el administrador rechazó la aplicación.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

Ejemplo 5: Enumeración de los detalles de solo las aplicaciones del catálogo que contienen un bot

En el ejemplo siguiente se enumeran solo las aplicaciones del catálogo que contienen un bot.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$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"
            }
          },
          "authorization": {
            "clientAppId": null,
            "requiredPermissionSet": {
              "resourceSpecificPermissions": []
            }
          },
          "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"
            }
          },
          "authorization": {
            "clientAppId": null,
            "requiredPermissionSet": {
              "resourceSpecificPermissions": []
            }
          },
          "bot": {
            "id": "da7d471b-de7d-4152-8556-1cdf7a564f6c"
          }
        }
      ]
    }
  ]
}

Ejemplo 6: Enumerar aplicaciones con un identificador determinado y devolver solo los permisos específicos del recurso requeridos por la aplicación

En el ejemplo siguiente se enumeran las aplicaciones con un identificador determinado y se devuelven los permisos específicos del recurso asociados a él.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$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/v1.0/$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"
                }
              ]
            }
          }
        }
      ]
    }
  ]
}