Enumerar aplicaciones en el equipo
Espacio de nombres: microsoft.graph
Importante
Las API de la versión /beta
de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.
Recupere la lista de aplicaciones instaladas en el equipo especificado.
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) | TeamsAppInstallation.ReadForTeam | TeamsAppInstallation.ReadWriteSelfForTeam, Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, TeamsAppInstallation.ManageSelectedForTeam, TeamsAppInstallation.ReadWriteAndConsentForTeam, TeamsAppInstallation.ReadWriteAndConsentSelfForTeam, TeamsAppInstallation.ReadWriteForTeam |
Delegado (cuenta personal de Microsoft) | No admitida. | No admitida. |
Aplicación | TeamsAppInstallation.Read.Group | TeamsAppInstallation.ReadWriteSelfForTeam.All, Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, TeamsAppInstallation.ManageSelectedForTeam.All, TeamsAppInstallation.Read.All, TeamsAppInstallation.ReadForTeam.All, TeamsAppInstallation.ReadWriteAndConsentForTeam.All, TeamsAppInstallation.ReadWriteAndConsentSelfForTeam.All, TeamsAppInstallation.ReadWriteForTeam.All |
Nota:
- Los permisos Group.Read.All, Group.ReadWrite.All, 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.
- El permiso TeamsAppInstallation.Read.Group usa el consentimiento específico del recurso.
Solicitud HTTP
GET /teams/{team-id}/installedApps
Parámetros de consulta opcionales
Este método admite los $filter
parámetros de consulta , $select
y $expand
OData para ayudar a personalizar la respuesta.
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 código de respuesta y una 200 OK
colección de objetos teamsAppInstallation en el cuerpo de la respuesta.
Ejemplos
Ejemplo 1: Lista de aplicaciones instaladas
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/teams/6903fa93-605b-43ef-920e-77c4729f8258/installedApps
Respuesta
En el ejemplo siguiente se muestra la respuesta.
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#teams('6903fa93-605b-43ef-920e-77c4729f8258')/installedApps",
"@odata.count":3,
"value":[
{
"id":"NjkwM2ZhOTMtNjA1Yi00M2VmLTkyMGUtNzdjNDcyOWY4MjU4IyMwMDAwMTAxNi1kZTA1LTQ5MmUtOTEwNi00ODI4ZmM4YTg2ODc="
},
{
"id":"NjkwM2ZhOTMtNjA1Yi00M2VmLTkyMGUtNzdjNDcyOWY4MjU4IyMwYWUzNWIzNi0wZmQ3LTQyMmUtODA1Yi1kNTNhZjE1NzkwOTM="
},
{
"id":"NjkwM2ZhOTMtNjA1Yi00M2VmLTkyMGUtNzdjNDcyOWY4MjU4IyMwZDgyMGVjZC1kZWYyLTQyOTctYWRhZC03ODA1NmNkZTdjNzg="
}
]
}
Ejemplo 2: Obtener los nombres y otros detalles de las aplicaciones instaladas
Solicitud
En el ejemplo siguiente, si una instancia de una de las aplicaciones instaladas tiene un bot asociada a ella, entonces se devolverán también los detalles del bot.
GET https://graph.microsoft.com/beta/teams/6903fa93-605b-43ef-920e-77c4729f8258/installedApps?$expand=teamsAppDefinition($expand=bot)
Respuesta
En el ejemplo siguiente se muestra la respuesta.
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#teams('6903fa93-605b-43ef-920e-77c4729f8258')/installedApps(teamsAppDefinition())",
"@odata.count":3,
"value":[
{
"id":"NjkwM2ZhOTMtNjA1Yi00M2VmLTkyMGUtNzdjNDcyOWY4MjU4IyMwMDAwMTAxNi1kZTA1LTQ5MmUtOTEwNi00ODI4ZmM4YTg2ODc=",
"teamsAppDefinition":{
"id":"MDAwMDEwMTYtZGUwNS00OTJlLTkxMDYtNDgyOGZjOGE4Njg3IyMxLjAuMg==",
"teamsAppId":"00001016-de05-492e-9106-4828fc8a8687",
"azureADAppId":"7df0a125-d3be-4c96-aa54-591f83ff541c",
"displayName":"Power Automate Actions",
"version":"1.0.2",
"requiredResourceSpecificApplicationPermissions":[
],
"publishingState":"published",
"shortdescription":"Be more productive with Microsoft Flow",
"description":"Automate time-consuming and repetitive tasks by integrating your favorite apps and services with Microsoft Power Automate.",
"lastModifiedDateTime":null,
"createdBy":null,
"bot":{
"id":"9a58a3ec-6b68-4818-ac11-844f1c326784"
}
}
},
{
"id":"NjkwM2ZhOTMtNjA1Yi00M2VmLTkyMGUtNzdjNDcyOWY4MjU4IyMwYWUzNWIzNi0wZmQ3LTQyMmUtODA1Yi1kNTNhZjE1NzkwOTM=",
"teamsAppDefinition":{
"id":"MGFlMzViMzYtMGZkNy00MjJlLTgwNWItZDUzYWYxNTc5MDkzIyMxLjI=",
"teamsAppId":"0ae35b36-0fd7-422e-805b-d53af1579093",
"azureADAppId":"00000003-0000-0ff1-ce00-000000000000",
"displayName":"SharePoint Pages",
"version":"1.2",
"requiredResourceSpecificApplicationPermissions":[
],
"publishingState":"published",
"shortdescription":"Add a tab for a SharePoint news article or page.",
"description":"This app allows you to tab intranet pages from any SharePoint site so that they can be viewed by your team inside Teams channels.",
"lastModifiedDateTime":null,
"createdBy":null
}
},
{
"id":"NjkwM2ZhOTMtNjA1Yi00M2VmLTkyMGUtNzdjNDcyOWY4MjU4IyMwZDgyMGVjZC1kZWYyLTQyOTctYWRhZC03ODA1NmNkZTdjNzg=",
"teamsAppDefinition":{
"id":"MGQ4MjBlY2QtZGVmMi00Mjk3LWFkYWQtNzgwNTZjZGU3Yzc4IyMxLjAuMA==",
"teamsAppId":"0d820ecd-def2-4297-adad-78056cde7c78",
"azureADAppId":"2d4d3d8e-2be3-4bef-9f87-7875a61c29de",
"displayName":"OneNote",
"version":"1.0.0",
"requiredResourceSpecificApplicationPermissions":[
],
"publishingState":"published",
"shortdescription":"Capture and share ideas, to-do lists and other notes with your team.",
"description":"Capture and share ideas, to-do lists and other thoughts with your team. You can also co-author anytime.",
"lastModifiedDateTime":null,
"createdBy":null
}
}
]
}
Ejemplo 3: Obtención del recurso de instalación de la aplicación en función del identificador de manifiesto de la aplicación asociada
Solicitud
En el ejemplo siguiente se muestra la solicitud. En el ejemplo, el identificador de manifiesto de la aplicación teams es cf1ba4c7-f94e-4d80-ba90-5594b641a8ee
.
GET https://graph.microsoft.com/beta/teams/acda442c-78d2-491b-8204-4ef5019c0193/installedApps?$expand=teamsApp,teamsAppDefinition&$filter=teamsApp/externalId eq 'cf1ba4c7-f94e-4d80-ba90-5594b641a8ee'
Nota:
Este ejemplo se aplica a las aplicaciones locales o organizativas. El valor externalId está vacío para las aplicaciones con un tipo distributionMethod de store
. Cuando las aplicaciones se publican en la tienda global, el identificador de la aplicación coincide con el identificador del manifiesto de la aplicación.
Respuesta
En el ejemplo siguiente se muestra la respuesta.
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.count":1,
"value":[
{
"id":"NjkwM2ZhOTMtNjA1Yi00M2VmLTkyMGUtNzdjNDcyOWY4MjU4IyMwMjQwYTM2OC0yNWUwLTQ1NjktOGViZS0xMzYwMWNiNTVhMTg=",
"teamsApp":{
"id":"0240a368-25e0-4569-8ebe-13601cb55a18",
"externalId":"cf1ba4c7-f94e-4d80-ba90-5594b641a8ee",
"displayName":"YPA",
"distributionMethod":"sideloaded"
},
"teamsAppDefinition":{
"id":"MDI0MGEzNjgtMjVlMC00NTY5LThlYmUtMTM2MDFjYjU1YTE4IyM2LjAuMA==",
"teamsAppId":"0240a368-25e0-4569-8ebe-13601cb55a18",
"azureADAppId":"9fc97ea2-c417-4c76-a2db-197612067b28",
"displayName":"YPA",
"version":"6.0.0",
"requiredResourceSpecificApplicationPermissions":[
],
"publishingState":"published",
"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":null,
"createdBy":null
}
}
]
}
Ejemplo 4: Obtención del conjunto de permisos específicos de recursos con consentimiento para las aplicaciones instaladas en el equipo especificado
En el ejemplo siguiente se obtiene la lista de los permisos específicos de recursos que se concedieron a una aplicación como parte de la instalación. Se requiere un $select
parámetro de consulta para mostrar el conjunto de permisos con consentimiento.
Solicitud
GET https://graph.microsoft.com/beta/teams/7eeb5a95-f602-4861-ab67-49714fa5a020/installedApps?$select=consentedPermissionSet,id
Respuesta
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/teams('7eeb5a95-f602-4861-ab67-49714fa5a020')/installedApps(consentedPermissionSet,id)",
"@odata.count": 70,
"value": [
{
"id": "N2VlYjVhOTUtZjYwMi00ODYxLWFiNjctNDk3MTRmYTVhMDIwIyMwMDAwMTAxNi1kZTA1LTQ5MmUtOTEwNi00ODI4ZmM4YTg2ODc=",
"consentedPermissionSet": null
},
{
"id": "N2VlYjVhOTUtZjYwMi00ODYxLWFiNjctNDk3MTRmYTVhMDIwIyMxYzI1NmE2NS04M2E2LTRiNWMtOWNjZi03OGY4YWZiNmYxZTg=",
"consentedPermissionSet": {
"resourceSpecificPermissions": [
{
"permissionValue": "ChannelMeeting.ReadBasic.Group",
"permissionType": "delegated"
},
{
"permissionValue": "ChannelMeetingStage.Write.Group",
"permissionType": "delegated"
}
]
}
},
]
}