El componente web de Google Picker ofrece una forma adicional de integrar la API de Google Picker en tus apps web.
El componente web simplifica la integración de la selección de archivos de Google Drive en tus apps web. Incluye toda la lógica de carga y autenticación de la API en un solo elemento HTML. Te permite colocar una etiqueta <drive-picker> directamente en
tu código sin necesidad de escribir la lógica de carga de gapi. Se puede usar en HTML y JavaScript sin formato, y también es independiente del framework, ya que funciona sin problemas con Svelte, Vue, Angular y muchos más.
Para obtener más información sobre la biblioteca de componentes web, consulta
@googleworkspace/drive-picker-element.
En el caso de las apps de React, usa el paquete oficial de wrapper de React del componente web:
@googleworkspace/drive-picker-react.
Características clave
- Integración directa: Agrega Google Picker a tus apps web con unas pocas líneas de código.
- Independiente del framework: Funciona sin problemas con cualquier framework web que elijas (React, Vue, Angular, etc.).
- Código abierto y personalizable: El código está disponible de forma gratuita y puedes personalizarlo para que se adapte a tus necesidades específicas.
- Compatibilidad con OAuth sin problemas: Controla la autenticación del usuario automáticamente, lo que proporciona una experiencia del usuario fluida.
- Vistas personalizables: Configura Google Picker para que muestre solo los tipos de archivo o las vistas que necesitas configurando atributos.
Comenzar
Instala el componente con NPM o similar:
npm i @googleworkspace/drive-picker-elementTambién hay disponible una versión de CDN. Para conocer los formatos y las versiones disponibles, consulta
unpkg.<script src="https://unpkg.com/@googleworkspace/drive-picker-element@latest/dist/index.iife.min.js"></script>Importa los componentes
@googleworkspace/drive-picker-elementen tu archivo JavaScript:import "@googleworkspace/drive-picker-element";La importación no es obligatoria si usas la versión de CDN, ya que carga automáticamente la biblioteca de Google Picker y la biblioteca cliente de la API de Google que se usa para la autenticación.
Agrega los elementos personalizados a tu archivo HTML:
<drive-picker> <drive-picker-docs-view></drive-picker-docs-view> </drive-picker>Para obtener información sobre los atributos y las propiedades de
<drive-picker/>y<drive-picker-docs-view/>, consulta la documentación de referencia de@googleworkspace/drive-picker-element.
Eventos
El elemento <drive-picker/> envía los siguientes eventos personalizados:
| Evento | Descripción |
|---|---|
picker-picked |
Se activa cuando el usuario selecciona uno o más elementos. |
picker-canceled |
Se activa cuando el usuario cancela la selección haciendo clic en el botón Cancelar o cerrando el diálogo sin una selección. |
picker-error |
Se activa cuando se produce un error durante la inicialización o la selección de archivos. |
Para obtener más información sobre los eventos, consulta la
@googleworkspace/drive-picker-element
documentación en NPM.
Detalles del evento
Para el evento picker-picked, el detalle del evento contiene el
Google Picker
ResponseObject completo.
{
"type": "picker-picked",
"detail": {
"action": "PICKED",
"docs": [
{
"id": ID,
"mimeType": "application/pdf",
"name": NAME,
"url": "https://drive.google.com/file/d/ID/view?usp=drive_web",
"sizeBytes": 12345
}
]
}
}
Las propiedades de uso frecuente en el objeto de respuesta son las siguientes:
action: Es la acción que activó la devolución de llamada (por ejemplo,PICKED).docs: Es un array deDocumentObjects seleccionados por el usuario. Cada objeto contiene propiedades como las siguientes:
Para el evento picker-error, event.detail contiene un objeto o una cadena de error que describe la falla (por ejemplo, ERR_USER_NOT_AUTHENTICATED).
Ejemplos
En las siguientes muestras de código, se muestra cómo usar el componente web de Google Picker para casos de uso comunes. Para cada muestra de código, reemplaza lo siguiente:
PROMPT: Es una lista sensible a mayúsculas y minúsculas delimitada por espacios de mensajes de autorización de la Cuenta de Google para presentar al usuario. Para obtener más información, consulta
TokenClientConfig.prompt.ORIGIN: Es el parámetro de origen del selector. Por ejemplo,
https://developers.google.com. Para obtener más información, consulta elPickerBuilder.setOriginmétodo.APP_ID: Es el ID de la app de Drive. Para obtener más información, consulta el
PickerBuilder.setAppIdmétodo.CLIENT_ID: Es el ID de cliente de OAuth 2.0. Para obtener más información, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
Archivos PDF
Filtra la vista para mostrar solo los archivos PDF con el atributo mime-types.
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view mime-types="application/pdf"></drive-picker-docs-view>
</drive-picker>
Archivos de imagen y video
Filtra la vista para mostrar solo los archivos de imagen (JPEG, PNG) y video (MP4, QuickTime) con el atributo mime-types.
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view mime-types="image/jpeg,image/png,video/mp4,video/quicktime"></drive-picker-docs-view>
</drive-picker>
Archivos propios
Filtra la vista para mostrar solo los archivos que son propiedad del usuario actual con el atributo owned-by-me.
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view owned-by-me="true"></drive-picker-docs-view>
</drive-picker>
Consultar archivos sin título
Filtra la vista para mostrar los archivos que coinciden con la consulta de búsqueda "Sin título" con el atributo query.
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view query="Untitled"></drive-picker-docs-view>
</drive-picker>
Archivos destacados
Filtra la vista para mostrar solo los archivos destacados con el atributo starred.
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view starred="true"></drive-picker-docs-view>
</drive-picker>
Temas relacionados
- Para obtener información detallada sobre los atributos, los eventos y las propiedades, consulta la documentación completa
drive-picker-elementen GitHub.