Mostrar imágen Base64 en Adaptive Cards al hacer post de un mensaje en Teams

Si al intentar añadir una imágen en el JSON de una Adaptive Card para enviar como mensaje en Teams no se renderiza (usando el data:image en la url de la imágen), puede ser por el tamaño máximo permitido en el JSON de la adaptive card (28kb en la fecha de creación de este post), pero si ese no es el caso, podéis intentar añadir la imagen como “Hosted Contents” en el propio mensaje que mandéis como request.

Para ello necesitáis un nuevo bloque de “hostedContents” que contendra la imagen en base64 junto con un id temporal y el contentType de la imagen, y en la url de la imagen deberéis definir la url a este hostedContents y el id asignado: ../hostedContents/1/$value.

Ejemplo:

Endpoint: POST https://graph.microsoft.com/v1.0/teams/TEAM_ID/channels/CHANNEL_ID/messages

Request Body:

{
    "subject": "",
    "body": {
        "contentType": "html",
        "content": "<attachment id='14ed4ff2-b711-411c-a597-5bef44681b11'></attachment>"
    },
    "hostedContents": [
        {
            "@microsoft.graph.temporaryId": "1",
            "contentBytes": "YOUR_BASE64_IMAGE",
            "contentType": "image/png"
        }
    ],
    "attachments": [
        {
            "id": "14ed4ff2-b711-411c-a597-5bef44681b11",
            "contentType": "application/vnd.microsoft.card.adaptive",
            "contentUrl": null,
            "content": "{\"type\":\"AdaptiveCard\",\"$schema\":\"http://adaptivecards.io/schemas/adaptive-card.json\",\"version\":\"1.3\",\"body\":[{\"type\":\"Image\",\"url\":\"../hostedContents/1/$value\"}]}",
            "name": null,
            "thumbnailUrl": null
        }
    ],
    "mentions": []
}

No Responses

Leave a Reply

Your email address will not be published. Required fields are marked *