mode: 'popup'En una ventana
El modo predeterminado. El picker se abre en una ventana en el host del espacio de trabajo. El inicio de sesión, incluidos el inicio de sesión único y las llaves de acceso, se hace en una segunda ventana.
Desarrolladores · Freedam Picker
Añade a un CMS, al back office de una tienda en línea o a una herramienta interna un botón que abre Freedam. Las personas buscan en el espacio de trabajo y eligen recursos dentro de sus propios derechos de acceso. Tu página recibe ID de recursos estables y URL publicadas, listas para mostrar.
Un administrador del espacio de trabajo crea una integración: los orígenes autorizados a abrir el picker, los recursos que ofrece y el canal de publicación de lo que inserta. La página Integraciones te da entonces un código como este, con el host del espacio de trabajo y la clave de la integración ya rellenados.
open() se resuelve con los recursos elegidos, o con null cuando la persona cancela. Los callbacks y los eventos DOM informan del mismo resultado para las páginas que los prefieren.
Etiqueta script
<script src="https://acme.freedam.io/sdk/picker/v1/picker.js"></script>
<button type="button" id="choose">Choose from Freedam</button>
<script>
document.getElementById('choose').addEventListener('click', async () => {
const assets = await Freedam.picker.open({
workspace: 'acme.freedam.io',
integration: 'w5r8n2c4t7bd',
});
if (assets) showImage(assets[0].url, assets[0].metadata.alt);
});
</script>Una sola opción, mode, define la visualización, y todos los modos devuelven el mismo resultado. Cuando el navegador no permite que el picker inicie sesión dentro de tu página, continúa en una ventana con las mismas opciones. Los modos modal e inline requieren la versión 1.1 del SDK, el modo tab la versión 1.2.
mode: 'popup'El modo predeterminado. El picker se abre en una ventana en el host del espacio de trabajo. El inicio de sesión, incluidos el inicio de sesión único y las llaves de acceso, se hace en una segunda ventana.
mode: 'tab'El picker se abre en una pestaña nueva del navegador, a todo el ancho. Conserva window.opener para enviar la selección a tu página y luego se cierra.
mode: 'modal'Un iframe sobre un fondo oscurecido, a pantalla completa en pantallas pequeñas, con el foco dentro de él hasta que la persona lo cierra.
mode: 'inline'Un iframe que ocupa un elemento que eliges, como un panel lateral de tu editor, de al menos 480 píxeles de alto.
urlurl_templatefocus_pointmetadataplayer_urlusage_tokenLas imágenes, los videos y los documentos tienen cada uno sus propios campos. La referencia los enumera todos, con el JSON Schema del payload.
Una imagen, abreviada
{
"gaid": "IM-20260309-UDXZH8PP6VPW",
"type": "image",
"url": "https://acme.freedam.io/i/w=2048,fmt=hero/IM-…",
"url_template": "https://acme.freedam.io/i/{options}/IM-…",
"widths": [128, 256, 512, 1024, 2048],
"focus_point": { "x": 45.2, "y": 38.7 },
"metadata": {
"title": "Head office, Lyon",
"alt": "Glass front at sunset",
"credit": "Studio Martin"
},
"usage_id": "9d4e1f3a-6b2c-4f8e-a1d7-3c5b9e2f0a64",
"usage_token": "fdu_…",
"choice": { "format": "hero", "file_format": null }
}El mismo SDK está disponible como el paquete npm @freedam/picker, y el script también define un elemento <freedam-picker> para las páginas en las que no quieres escribir JavaScript. La guía de inicio rápido tiene ejemplos para React y Vue.
npm install @freedam/picker
import { open } from '@freedam/picker';
const assets = await open({
workspace,
integration,
select: 'multiple',
types: ['image', 'video'],
});<freedam-picker workspace="acme.freedam.io" integration="w5r8n2c4t7bd">
<button type="button">Choose from Freedam</button>
</freedam-picker>/sdk/picker/v1/picker.jsLa última versión 1.x. La usa el fragmento de la página Integraciones.
/sdk/picker/{version}/picker.jsUna versión exacta, cuyo archivo nunca cambia. Cárgala con su valor de integridad, que figura en la referencia.
protocol=1Los mensajes entre el picker y tu página tienen su propia versión. Freedam sigue aceptando una versión anterior durante al menos seis meses.
El picker solo se abre desde los orígenes que enumera la integración, y envía la selección a ese origen exacto, nunca a otra página.
Las personas ven los recursos que pueden ver en Freedam, dentro de las reglas de la integración. Los visitantes sin cuenta también pueden elegir recursos, cuando un administrador activa ese acceso.
Tu página carga un script y llama a una función. No contiene ningún token de API: el picker se ejecuta en el host del espacio de trabajo y actúa en nombre de la persona que lo usa.
Los recursos insertados se publican en un canal del espacio de trabajo. Sus URL siguen siendo válidas hasta que se despublica el recurso o terminan sus derechos de uso.
El script viene del host del espacio de trabajo, sin CDN de terceros. Una URL versionada con un valor de Subresource Integrity fija una versión exacta.
Unos pocos kilobytes, ninguna dependencia en tiempo de ejecución, tipos de TypeScript y un JSON Schema para el payload. Las versiones siguen el versionado semántico.
Desarrolladores · Freedam Picker
El playground abre el picker en un espacio de trabajo de demostración, escribe el código de las opciones que elijas y muestra el payload que recibiría tu página.