Desarrolladores de productos

Añade publicación a tu producto.

Una aplicación ficticia de diario añade una acción confirmada por el usuario para programar publicaciones sociales y mostrar resultados.

TU PRODUCTO + SOSOAPI

Flujo ilustrativo de integración
  1. Tu productoPrepara y confirma
  2. SosoAPIPrograma una publicación confirmada
  3. Cuenta socialSigue el resultado
Flujo de integración de ejemplo. Abre la guía práctica para consultar las solicitudes API del servidor y los campos de respuesta.

Tres pasos

  1. Prepara el contenido

    Recopila texto e imágenes dentro de tu producto.

  2. Deja que los usuarios confirmen

    Muestra la cuenta, el contenido y la hora antes de programar.

  3. Trae los resultados de vuelta

    Muestra el progreso y el resultado final de publicación.

La publicación social pasa a formar parte de tu producto.

Ver la guía práctica completa

Escenario

Añade una acción deliberada y revisable de «programar esta actualización» a un producto ficticio de diario. Mantén visibles el espacio de trabajo del usuario y la cuenta conectada exacta, y muestra el estado devuelto sin insinuar publicación por el proveedor.

Ilustración de espacio de trabajo de ejemplo de SosoAPI para «Añade publicación a tu producto..»
El editor compartido New Post con datos ficticios. No se envió ninguna publicación.

Antes de empezar

  • Crea y verifica tu cuenta SosoAPI y selecciona el espacio de trabajo previsto.
  • Crea una clave API en App Settings → Agents & API Access. Guárdala como SOSOAPI_API_KEY en el entorno de tu servidor; estos ejemplos JavaScript usan Node.js 20+ y no requieren el repositorio de código de SosoAPI.
  • Elige un UUID real de espacio de trabajo y un UUID de cuenta social de Threads solo del alcance autorizado actual. La cuenta debe ser elegible para una publicación de texto de Threads.
  • El propietario de la clave API necesita acceso editor u owner al espacio elegido. Mantén la clave en el servidor, fuera del código del navegador, JSON de solicitud y registros.

Datos de entrada de ejemplo

Producto ficticio
Harborlight Journal · concepto de aplicación de diario privado; no se afirma ninguna integración real.
Intención del usuario
Programa una nota de producto revisada para una cuenta elegida de Threads a una hora local futura.
Texto de ejemplo
«Una pequeña nota para después: Harborlight Journal está dejando espacio para reflexiones diarias más breves. Quédate con una idea; deja el resto para mañana».
Alcance requerido en ejecución
<workspace-uuid> y <threads-social-account-uuid> del alcance autorizado actualmente por el usuario; nunca deduzcas IDs.
Programar
<future ISO-8601 instant with offset>, con display_timezone configurado en Asia/Hong_Kong.
Identidad de reintento
<unique stable idempotency key for this one user intent>; reutilízala solo al reintentar de forma segura la misma solicitud.

Guía práctica

  1. Diseña la confirmación del producto antes de la llamada API

    Abrir esta sección en SosoAPI
    • En la aplicación SosoAPI, selecciona el espacio de trabajo previsto y revisa su cuenta conectada. En el prototipo de tu producto, muestra ese mismo espacio y cuenta elegidos por el usuario en vez de seleccionarlos silenciosamente.

    • Muestra el texto exacto, la cuenta, la hora local y la zona horaria en un paso de confirmación. Exige que la persona elija Schedule; abrir el formulario no debe enviar nada.

    Qué puedes esperar

    Una persona puede ver el destino y el horario antes de la escritura. El prototipo de producto ficticio es un ejercicio de diseño, no una integración instalada de un cliente.

  2. Consulta las publicaciones programadas actuales desde tu servidor

    • Sustituye <workspace-uuid> por el ID de espacio elegido y ejecuta esta solicitud de solo lectura en tu servidor:

    • const apiKey = process.env.SOSOAPI_API_KEY;
      if (!apiKey) throw new Error("Configure a SosoAPI API key on your server");
      const response = await fetch(
        "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/list",
        {
          method: "POST",
          headers: {
            "Authorization": "Bearer " + apiKey,
            "Content-Type": "application/json"
          },
          body: JSON.stringify({"workspace_id":"<workspace-uuid>"})
        }
      );
      const result = await response.json();
      if (!response.ok) throw new Error("SosoAPI request failed: " + response.status);
      // Use result in your server response; never return or log the API key.
    • Usa los datos devueltos para actualizar la lista de tu producto. Mantén la confirmación del usuario separada de esta lectura.

    Qué puedes esperar

    Recibes las publicaciones actuales del espacio de trabajo o un error de autorización/validación. Esta solicitud de solo lectura no crea publicaciones.

  3. Envía solo tras la confirmación explícita del usuario

    • Abre Calendar y elige New Post para comparar el paso de revisión con la misma acción en la aplicación.

    • Sustituye cada marcador por tus IDs autorizados, una fecha ISO futura con desplazamiento y una clave de idempotencia única. Revisa la cuenta, el texto y la hora antes de ejecutar esta solicitud en el servidor.

    • const apiKey = process.env.SOSOAPI_API_KEY;
      if (!apiKey) throw new Error("Configure a SosoAPI API key on your server");
      const response = await fetch(
        "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/create",
        {
          method: "POST",
          headers: {
            "Authorization": "Bearer " + apiKey,
            "Content-Type": "application/json"
          },
          body: JSON.stringify({
        "workspace_id": "<workspace-uuid>",
        "social_account_id": "<threads-social-account-uuid>",
        "caption": "A small note for later: Harborlight Journal is making room for shorter daily reflections. Keep one thought; leave the rest for tomorrow.",
        "hashtags": [],
        "media": [],
        "provider_payload": {"platform": "threads", "publish_options": {"post_type": "TEXT"}},
        "scheduled_at": "<future ISO-8601 instant with offset>",
        "display_timezone": "Asia/Hong_Kong",
        "idempotency_key": "<unique-stable-key-for-this-intent>"
      })
        }
      );
      const result = await response.json();
      if (!response.ok) throw new Error("SosoAPI request failed: " + response.status);
      // Use result in your server response; never return or log the API key.
    • Esta solicitud crea una programación real. Envíala solo tras la confirmación del usuario y nunca expongas la clave API al navegador.

    Qué puedes esperar

    Una respuesta válida de aceptación identifica la publicación programada resultante; no demuestra que el proveedor la haya publicado. Una capacidad denegada, alcance/cuenta no válidos, payload no admitido o programación rechazada deben mostrarse como error, no como éxito.

  4. Muestra el estado devuelto y ofrece al usuario un siguiente paso seguro

    Abrir esta sección en SosoAPI
    • Guarda el ID devuelto de publicación programada y muestra su estado actual, destino y programación en el producto.

    • Enlaza al usuario con el detalle de la publicación programada correspondiente. Si la entrega necesita una persona, enlaza el elemento de Requiere atención en vez de reenviar silenciosamente.

    • No etiquetes la solicitud como publicada hasta registrar el estado final confirmado por el proveedor.

    Qué puedes esperar

    El producto distingue un comprobante de solicitud de las observaciones de programado, publicando, publicado, fallido y desconocido. Los resultados desconocidos se concilian con la publicación existente antes de una nueva escritura.

Un comprobante de solicitud. Después, un resultado de publicación.

Los ejemplos siguientes muestran campos seleccionados de respuestas API con valores ficticios. Tras crear una programación, guarda post.id y úsalo para consultar el resultado de esa publicación.

1. Respuesta de creación

{
  "post": {
    "id": "10000000-0000-4000-8000-000000000001",
    "status": "scheduled",
    "scheduled_at": "2100-01-05T10:00:00+08:00",
    "published_at": null,
    "permalink": null
  },
  "deduped": false
}

2. Consultar la misma publicación

POST /studio-api/scheduled-posts/get
{
  "id": "10000000-0000-4000-8000-000000000001"
}

Tras la confirmación del proveedor, la respuesta de detalle puede incluir:

{
  "post": {
    "id": "10000000-0000-4000-8000-000000000001",
    "status": "published",
    "published_at": "2100-01-05T02:00:08Z",
    "permalink": "https://www.threads.net/@example/post/EXAMPLE"
  },
  "delivery": {
    "stage": "terminal",
    "message": "Published on Threads."
  }
}
post.status
Usa el estado real, como scheduled, publishing, published o failed. Si se pierde la conexión, consulta la misma publicación antes de determinar qué ocurrió.
post.permalink
El enlace a la publicación del proveedor cuando esté disponible; puede ser null. La URL anterior es un ejemplo.
delivery / outcomes
La respuesta de detalle muestra el progreso de publicación y los resultados de plataforma disponibles para la publicación. Si falla, consulta esos datos y Requiere atención antes de decidir qué hacer después.

Son ejemplos de campos, no un comprobante real de publicación. Esta página no realiza llamadas API.

Qué significa cada estado

SubmittedRespuesta a la solicitud
Se recibió tu solicitud. Consulta el estado actual de la publicación antes de considerarla programada o publicada.
ScheduledDetalles de publicación
La publicación programada se acepta para una hora futura. Mantén visibles su destino y hora programada mientras espera.
PublishingDetalles de publicación
La entrega está en curso. Espera un resultado definitivo; un estado en curso no significa éxito.
PublishedDetalles de publicación
Úsalo solo cuando SosoAPI registre confirmación definitiva del proveedor para la publicación programada.
FailedDetalles de publicación
Un fallo definitivo requiere revisión. Consulta el detalle y la acción disponible antes de decidir qué cambiar o reintentar.
UnknownQué muestra la aplicación
Si se pierde una conexión y el resultado no está claro, consulta las publicaciones programadas y Requiere atención antes de volver a enviar.

Guías relacionadas

La guía incluye ejemplos API para el servidor. Configura tus IDs autorizados y tu clave API antes de ejecutarlos; la página no hace solicitudes.

Prueba tu primer flujo de trabajo.

Crea tu cuenta y empieza con Free.

Empieza con Free