Ir al contenido

Webhook de captura

El webhook de captura convierte una nota de voz o un texto corto en una tarea de la bandeja de entrada. Cualquier dispositivo, aplicación o script que pueda enviar una solicitud HTTP envía el texto, y opcionalmente una grabación de audio, a tu propio servidor en la nube. El servidor crea la tarea, adjunta la grabación y tus dispositivos reciben ambas cosas en la siguiente sincronización.

Esto necesita el servidor en la nube autoalojado. Si usas Mindwtr sin servidor, captura desde el menú de compartir del teléfono o con Siri.

El endpoint

text
POST /v1/capture

Cada solicitud lleva el mismo token de portador que el resto de la API, en una cabecera Authorization: Bearer <token>. El cuerpo puede ser multipart/form-data, application/json con los mismos nombres de campo, o text/plain, donde todo el cuerpo es la transcripción. Los campos desconocidos se ignoran.

Solo texto

bash
curl -X POST https://your-server.example/v1/capture \
  -H "Authorization: Bearer $MINDWTR_TOKEN" \
  -H "Content-Type: text/plain" \
  --data "Call the dentist about the crown"

Audio con una transcripción

bash
curl -X POST https://your-server.example/v1/capture \
  -H "Authorization: Bearer $MINDWTR_TOKEN" \
  -F "transcription=Call the dentist about the crown" \
  -F "[email protected]" \
  -F "recordedAt=1756900000000" \
  -F "client=Pebble Index 01"

Campos

CampoQué hace
transcriptionEl texto capturado. La primera línea se convierte en el título de la tarea y el texto completo pasa a la descripción. text y title se aceptan como otros nombres del mismo campo.
audioLa grabación que se adjunta a la tarea. Se sincroniza con tus dispositivos como cualquier otro adjunto.
recordedAtCuándo se hizo la captura, en milisegundos desde la época o como marca de tiempo ISO 8601. Pasa a ser la hora de creación de la tarea cuando es válida y no está en el futuro.
clientUna etiqueta corta para el dispositivo o la aplicación que envió la captura. Se anota al final de la descripción como Captured with <client>.

Envía al menos uno de los campos transcription y audio. La grabación puede ser m4a, mp4, aac, mp3, wav, ogg o webm.

Respuestas

EstadoSignificado
201La tarea se creó. El cuerpo de la respuesta es la tarea nueva.
400No se envió ni transcripción ni archivo de audio.
401Falta el token o es incorrecto.
413El archivo de audio supera el límite de tamaño de adjuntos del servidor.
415El tipo del archivo de audio no es compatible.

Pebble Index 01

La aplicación del Pebble Index 01 envía notas de voz exactamente en este formato y permite añadir tus propias cabeceras de solicitud. Por eso no hace falta código intermedio: solo rellenas dos ajustes.

  1. Abre la aplicación de Pebble en el teléfono y ve a los ajustes de webhook para las notas de voz
  2. Pon la URL del webhook en https://your-server.example/v1/capture, con la dirección de tu propio servidor en lugar del ejemplo
  3. Añade una cabecera de solicitud llamada Authorization con el valor Bearer <token>, usando uno de los tokens de tu servidor
  4. Graba una nota en el reloj. Llega a tu bandeja de entrada en la siguiente sincronización, con la transcripción como tarea y la grabación adjunta

Otros dispositivos y automatizaciones

Nada de esto es exclusivo de Pebble. Cualquier cosa que pueda hacer un POST HTTP funciona igual:

  • Atajos de iOS: una acción Obtener contenido de URL, método POST, con la cabecera y un campo de texto
  • Aplicaciones de automatización de Android como Tasker: una acción de solicitud HTTP con la misma URL y la misma cabecera
  • Home Assistant: un rest_command que envía el texto de una automatización o de una respuesta del asistente de voz
  • Scripts de shell y tareas cron: los comandos curl de arriba, con el token en una variable de entorno

Páginas relacionadas

Mindwtr es gratuito, de código abierto y local-first.
Getting Things Done y GTD son marcas registradas de David Allen Company. Mindwtr no está afiliado, respaldado ni patrocinado por David Allen Company.