Publicar teamsApp

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.

Publicar una aplicación en el catálogo de aplicaciones de Microsoft Teams. En concreto, esta API publica la aplicación en el catálogo de la organización (el catálogo de aplicaciones de inquilino); el recurso creado tiene un valor de propiedad distributionMethod de organization.

La propiedad requiresReview permite a cualquier usuario enviar una aplicación para que la revise un administrador. Los administradores pueden aprobar o rechazar estas aplicaciones a través de esta API o del Centro de administración de Microsoft Teams.

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.ReadWrite.All, Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación No admitida. No admitida.

Nota:

El permiso Directory.ReadWrite.All solo se admite para la compatibilidad con versiones anteriores. Se recomienda actualizar las soluciones para usar un permiso alternativo enumerado en la tabla anterior y así evitar el uso de estos permisos en el futuro.

Solicitud HTTP

POST /appCatalogs/teamsApps

Para publicar una aplicación que requiera una revisión:

POST /appCatalogs/teamsApps?requiresReview={Boolean}

Parámetros de consulta

Propiedad Tipo Descripción
requiresReview Booleano Este parámetro de consulta opcional desencadena el proceso de revisión de la aplicación. Los usuarios con privilegios de administrador pueden enviar aplicaciones sin desencadenar una revisión. Si los usuarios quieren solicitar una revisión antes de publicar, deben establecer requiresReview en true. Un usuario que tenga privilegios de administrador puede optar por no establecer requiresReview o establecer el valor en false y la aplicación se aprueba e inmediatamente se publica.

Encabezados de solicitud

Encabezado Valor
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/zip. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, incluya una carga del manifiesto zip de Teams. Para obtener más información, consulte Creación de un paquete de aplicación.

Cada aplicación del catálogo de aplicaciones debe tener un identificador de manifiesto único.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y un objeto teamsApp . Si el manifiesto de la aplicación tiene errores de validación, la solicitud devuelve una respuesta de error con detalles sobre los errores de esquema.

Ejemplos

Ejemplo 1: Publicación de una aplicación en el catálogo de aplicaciones

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/appCatalogs/teamsApps
Content-type: application/zip

[Zip file containing a Teams app package]

Para obtener información sobre cómo crear un archivo zip de aplicación de Microsoft Teams, consulte Creación de un paquete de aplicación.

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "e3e29acb-8c79-412b-b746-e6c39ff4cd22",
  "externalId": "b5561ec9-8cab-4aa3-8aa2-d8d7172e4311",
  "displayName": "Test App",
  "distributionMethod": "organization"
}

Ejemplo 2: Carga de una nueva aplicación para su revisión en el catálogo de aplicaciones de una organización

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/appCatalogs/teamsApps?requiresReview=true
Content-type: application/zip

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 201 Created
Location: https://graph.microsoft.com/beta/appCatalogs/teamsApps/e3e29acb-8c79-412b-b746-e6c39ff4cd22

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps/$entity",
  "id": "e3e29acb-8c79-412b-b746-e6c39ff4cd22",
  "externalId": "b5561ec9-8cab-4aa3-8aa2-d8d7172e4311",
  "displayName": "Test App",
  "distributionMethod": "organization"
}

Ejemplo 3: Aprobación o rechazo de una aplicación pendiente de revisión

Solicitud

En el ejemplo siguiente se muestra la solicitud.

PATCH https://graph.microsoft.com/beta/appCatalogs/teamsApps/a761ad07-22ef-4a53-9feb-2837c8ad4a84/appDefinitions/YTc2MWFkMDctMjJlZi00YTUzLTlmZWItMjgzN2M4YWQ0YTg0IyMxLjEuOCMjU3VibWl0dGVk
Content-type: application/json
If-Match: InFtSStsNVJHVWdzWUJRU2ZVWGp4RWc9PSI=

{
  "publishingState":"published"
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#appCatalogs/teamsApps('a761ad07-22ef-4a53-9feb-2837c8ad4a84')/appDefinitions/$entity",
    "id": "YTc2MWFkMDctMjJlZi00YTUzLTlmZWItMjgzN2M4YWQ0YTg0IyMxLjEuOCMjUHVibGlzaGVk",
    "teamsAppId": "a761ad07-22ef-4a53-9feb-2837c8ad4a84",
    "azureADAppId": null,
    "displayName": "Ducks",
    "version": "1.1.8",
    "requiredResourceSpecificApplicationPermissions": [],
    "publishingState": "published",
    "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": null,
    "createdBy": null
}

Ejemplo 4: Publicación de una aplicación con un error en el manifiesto de la aplicación en el catálogo de aplicaciones

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/v1.0/appCatalogs/teamsApps
Content-type: application/zip

[Zip file containing a Teams app package]

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

{
    "error": {
        "code": "BadRequest",
        "message": "name | Required properties are missing from object: [].; developer.websiteUrl | String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
        "innerError": {
            "code": "UnableToParseTeamsAppManifest",
            "message": "name | Required properties are missing from object: [].; developer.websiteUrl | String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
            "details": [
                {
                    "code": "SchemaError_Required",
                    "message": "Required properties are missing from object: [].",
                    "target": "name"
                },
                {
                    "code": "SchemaError_Pattern",
                    "message": "String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
                    "target": "developer.websiteUrl"
                }
            ],
            "date": "2024-01-18T21:47:58",
            "request-id": "d1878136-bc88-421a-b342-c3d883db31a1",
            "client-request-id": "d1878136-bc88-421a-b342-c3d883db31a1"
        }
    }
}