«Muéstrame mis canales conectados y las próximas 10 publicaciones programadas».
S
Trabaja con tus datos guardados de SocialBlaze.
Mantén separada cada publicación de canal. Comprueba estado, texto, archivos y fecha.
Tú eliges las cuentas y acciones accesibles al asistente.
EMPIEZA AQUÍ / MCP
Conecta en tres pasos.
MCP permite que un cliente de IA compatible utilice herramientas de SocialBlaze. No necesitas escribir GraphQL para leer publicaciones, crear borradores o programar mediante herramientas específicas.
01
Conecta tus canales
Inicia sesión y conecta las redes que quieras usar. El asistente solo ve los canales incluidos en su acceso.
En la configuración MCP remota personalizada, introduce la URL del servidor. Elige OAuth si el cliente admite la autorización de SocialBlaze.
03
Autoriza y después lee
Inicia sesión, revisa las acciones y selecciona canales. Empieza con get_account o list_channels. Revisa los permisos solicitados. Publicar requiere una autorización explícita. Para solo lectura, el cliente debe solicitar ámbitos de lectura; la analítica requiere un permiso separado.
URL del servidor MCP remoto
https://backend.socialblaze.ai/api/developer/mcp
OAuth en un cliente compatible
Usa el inicio de sesión y consentimiento del navegador. No necesitas crear ni pegar una clave API para OAuth. Ten presente la selección de canales de la conexión existente.
Las funciones y disponibilidad varían. Una conexión MCP personalizada no implica presencia en un catálogo. Para una aplicación personal de servidor, utiliza la Inicio rápido de la API; para otros usuarios, utiliza Registro de aplicaciones OAuth.
Conectar con Claude
Abre Personalizar > Conectores, elige Añadir y después Añadir conector personalizado. Llámalo SocialBlaze, pega la URL del servidor MCP indicada arriba y continúa.
Revisa la autenticación detectada. Elige Sign in now y, en OAuth client, Register automatically. SocialBlaze usa registro automático, no la identidad publicada de Claude. Inicia sesión, revisa permisos, elige canales y termina con Add. No se necesita clave API.
En un chat nuevo, abre +, después Connectors y activa SocialBlaze. Si Claude indica que ya está conectado, utiliza la entrada existente en Yours en lugar de duplicarla.
Puede que el administrador deba añadir primero el conector. Consulta la Guía de conectores personalizados de Claude para conocer las pantallas y los requisitos de cuenta actuales.
Falta un canal conectado en mi IA
Comprueba que el canal esté desbloqueado y accesible en SocialBlaze. Reconecta desde tu aplicación de IA, revisa permisos y selecciona el canal ausente. Añadir o desbloquear un canal no lo incorpora a una conexión de IA existente; actualizarla conserva su selección. Mantén la conexión anterior hasta confirmar la nueva. No necesitas reconectar Instagram o Facebook solo para cambiar esa selección.
Si tienes permiso de analítica y ves el canal, pero falta un informe guardado, es un problema de disponibilidad de datos. Cambiar los canales seleccionados no recopila ni actualiza estadísticas.
Prueba solicitudes útiles y acotadas
«Muéstrame mis próximas 10 publicaciones programadas. Mantén cada destino de canal como una publicación independiente».
«Guarda esto como borrador. No lo publiques».
«Lee mi informe de rendimiento guardado para estas fechas. Dime qué datos no están disponibles».
Para las «últimas diez publicadas», conserva cada publicación de canal por separado aunque coincidan textos o enlaces. Los resultados abarcan los canales autorizados, no necesariamente toda la cuenta. Un informe ausente o una métrica desconocida no equivalen a cero; leer no actualiza la red. Las tarjetas están en versión preliminar. En ChatGPT, si falla la primera visualización, elige Reintentar. Si no carga una imagen, abre la publicación guardada. La disponibilidad varía entre aplicaciones y las imágenes externas pueden fallar; la vista previa no repara su origen. Programadas o aceptadas no significa entregadas: comprueba el estado antes de afirmar éxito.
El estado del servicio tiene su propia página.
Consulta pruebas actuales de servicios principales, API, MCP y publicación en redes en la Página de estado del servicio.
Inicia sesión, abre la consola y crea una clave. Elige canales y permisos necesarios. Copia el secreto una vez y guárdalo en el servidor.
Una clave de desarrollador es distinta del inicio de sesión web. No la incluyas en JavaScript público, URLs ni control de versiones. Publicar requiere autorización separada.
Leer tus canales
curl -A 'SocialBlazeDeveloperClient/0.1 (+https://socialblaze.ai/api)' 'https://backend.socialblaze.ai/api/developer/graphql' \
-H "Authorization: Bearer $SOCIALBLAZE_API_KEY" \
-H 'Content-Type: application/json' \
--data '{"query":"{ channels { id name service connected } }"}'
Los IDs devueltos pertenecen al acceso seleccionado. Utilízalos al crear publicaciones. La consola incluye un explorador ejecutable que mantiene la credencial en memoria durante la sesión.
02 / DEL CONTENIDO A LOS CANALES
Crea. Revisa. Programa. Publica.
Trabaja con publicaciones reales
Crea borradores, lee versiones y archivos, edita publicaciones futuras y cancela programaciones locales seguras.
Usa tu cola real
Publica ahora, elige fecha, añade a cola o prioriza. Mueve una publicación futura al principio o al final.
Aceptado no significa entregado. Leer post.allowedActions para obtener instrucciones de edición y cancelación local dentro del alcance permitido; cada modificación vuelve a comprobar la versión y el estado de publicación actuales. Consulta cada identificador de publicación devuelto para comprobar su estado, URL publicada y detalles de error. Un lote con elementos no válidos no guarda nada. Nunca reintentes una escritura de resultado incierto con una clave de solicitud nueva.
Conserva contentItemId desde createPost o createThread. Eliminar un destino puede conservar el borrador de origen. Para retirar el grupo local completo, consulta su versión actual y utiliza deleteContentItem; confirma después que el grupo y sus publicaciones ya no existen.
Elige una fecha o una posición en la cola
Usar mode: schedule con una fecha futura explícita dueAt por un tiempo determinado. Usa addToQueue o prioritize sin fecha para colocarla en la cola nativa del canal. Las acciones de cola requieren la función de colas inteligentes de tu plan y permiso de publicación. Para mover una publicación futura existente, usa movePostInQueue o la herramienta MCP denominada move_post_in_queue con su versión más reciente y una clave de solicitud estable.
Mover una publicación puede cambiar las fechas de otras en cola. Después, vuelve a leer publicaciones y versiones. Llevar al final una publicación creada en cola puede compactar la cola propia segura en sus espacios existentes; una publicación con fecha fija no pasa a ser parte de ella por coincidir en hora. La propiedad mixta, estados inseguros o espacios fijos ocupados pueden impedir el cambio. La aceptación no confirma entrega.
Mover una publicación al final de su cola
mutation MoveInQueue($id: ID!, $version: String!, $key: String!) {
movePostInQueue(id: $id, version: $version, requestKey: $key,
position: "bottom") { id version deleted }
}
# Read the post's current version first. Use "top" for priority placement.
# Then read this channel's scheduled posts again to check actual due times.
Leer publicaciones entregadas sin combinar canales
Lee cada publicación por separado conservando ID, canal y URL. El orden descendente por ID coincide con el feed del sitio dentro de los canales autorizados. Un permiso limitado no expone todo el espacio. Para ordenar por pruebas válidas de entrega registrada, solicita sort: [{field: publishedAt, direction: desc}] y opcionalmente publishedAfter/publishedBefore. Lee el valor anulable publishedAt y publishedAtBasis. native_terminal_delivery_observed es la primera hora de confirmación terminal local, no una hora original de publicación del proveedor verificada de forma independiente; las fechas de programación, creación y edición nunca sustituyen una hora de publicación desconocida. Las horas desconocidas se ordenan al final y no permiten afirmar que se dispone de las diez últimas publicaciones en orden cronológico completo. Reinicia los cursores cuando cambien los filtros o el orden.
Leer diez registros entregados en el orden del sitio
query {
posts(first: 10, status: "delivered") {
nodes { id channelId text publishedUrl publishedAt publishedAtBasis }
pageInfo { endCursor hasNextPage }
}
}
# Default order matches the website feed's descending record IDs.
# For known recorded publication times, use sort:[{field:publishedAt,direction:desc}].
Filtrar y paginar publicaciones
Omite statuses para no restringir el estado. Un valor explícitamente vacío statuses: [] no selecciona publicaciones; GraphQL statuses: null también deja el filtro sin restricciones. Si proporcionas el valor singular status con statuses, sus valores forman una selección, por lo que un estado singular también se aplica junto a un array vacío. Estas reglas se aplican al recuento correspondiente. Con dueAt en orden ascendente, las publicaciones sin fecha van primero; en descendente, al final. publishedAt mantiene las horas desconocidas al final en ambas direcciones. Usa dueAtPresence: present cuando solo quieras fechas programadas. Continúa con el valor devuelto pageInfo.endCursor; empieza de nuevo sin after cuando cambien los filtros, el orden o el acceso seleccionado, o se rechace un cursor. Un cursor guardado antes de la actualización del orden por vencimiento no puede reutilizarse para un orden que contenga dueAt en orden ascendente.
Imágenes, vídeos y documentos
Adjunta imágenes JPEG, PNG o WebP dentro de los límites, o un vídeo MP4/MOV. Las publicaciones estándar admiten hasta 10 imágenes en Facebook, Instagram, Tumblr y WordPress; 20 en LinkedIn y Threads; 35 en TikTok; 4 en Bluesky, Mastodon y Google Business Profile; y 1 en Pinterest. YouTube requiere vídeo. Tumblr admite un vídeo H.264 MP4/MOV de hasta diez minutos y 50 MB. Una publicación compartida debe cumplir todos los destinos. Grupos e hilos mantienen ocho adjuntos totales por solicitud. Las imágenes pueden incluir una vista protegida independiente thumbnailUrl para su vista previa en SocialBlaze; no sustituye la imagen enviada a una red. Las imágenes también aceptan un campo protegido independiente animatedThumbnail: vista previa pública GIF o WebP de hasta 1 MiB. Las vistas estáticas y animadas tienen sus propios límites de importación y URLs. La imagen original debe cumplir las reglas del destino. Las lecturas muestran ambas URLs; isAnimated permanece en null hasta que se mida la animación, por lo que una URL de vista previa no demuestra que la imagen original sea animada. LinkedIn también acepta un PDF con título y un thumbnailUrl HTTPS opcional para la vista previa de SocialBlaze. Las vistas previas deben ser archivos JPEG, PNG o WebP validados de hasta 1 MB; LinkedIn genera sus propias páginas del documento. Cada imagen tiene un límite de 8 MB, los vídeos de 50 MB y los PDF de 20 MB. Sigue aplicándose la validación específica de cada canal; consulta configuration y channel.capabilities.
Los PDF guardados muestran valores anulables de numPages (recuento de páginas medido) y filesize (bytes de la importación validada). Los archivos antiguos o sin recuento de páginas disponible permanecen null, nunca un cero inventado; el tamaño medido puede estar disponible aunque se desconozcan las páginas. Estos valores describen el PDF importado almacenado, no una copia renderizada por el proveedor. Leerlos no vuelve a descargar el archivo ni completa archivos antiguos. Las herramientas MCP get_post y list_posts incluyen los campos. Para el cliente inmutable de Node 0.1.14, usa una selección explícita de GraphQL cuando necesites estos campos nuevos.
Leer metadatos medidos de un PDF guardado
query SavedDocument($postId: ID!) {
post(id: $postId) {
id version
assets { type title mimeType numPages filesize }
}
}
Programar una publicación con archivos y sin texto
Para un destino compatible, createPost y la herramienta create_post aceptan text: "" con imágenes válidas o un vídeo. Se rechaza el texto vacío sin medios. Siguen aplicándose los títulos obligatorios, las opciones específicas de la red y los límites de medios; un ejemplo de borrador de solo texto no demuestra este flujo. En una conexión interactiva de publicación, la tarjeta preparada también puede conservar un texto vacío con medios: revisa las cuentas seleccionadas y el contenido antes de elegir Programar o Publicar.
Programar un vídeo sin texto
mutation ScheduleVideo($key: String!, $channel: ID!, $url: String!,
$when: String!) {
createPost(requestKey: $key, channelIds: [$channel], text: "",
video: {url: $url}, mode: schedule, dueAt: $when) {
contentItemId accepted published posts { id channelId status dueAt version }
}
}
# Use a direct public HTTPS MP4/MOV URL and an eligible video channel.
# Choose a future ISO 8601 time with an explicit UTC offset.
# Check that channel's required publishing options before submitting.
Editar y solicitar revisión conjuntamente
Para un borrador sencillo de un canal, propiedad de la integración y sujeto a aprobación, utiliza updatePost con approvalChange: request o revert. Las herramientas MCP edit_post admite estas opciones sin texto. Proporciona la versión más reciente, una clave de solicitud estable, drafts:write y posts:review. El contenido y los adjuntos cambian de forma atómica con la solicitud de revisión. Aprobar no publica: envía explícitamente el borrador aprobado sin cambios. Si cambia, debe revisarse otra vez.
Cambiar el método de una publicación futura
Usar updatePost(publishingMethod: automatic) o reminder, o la herramienta edit_post, para cambiar una publicación futura segura conservando su ID. Proporciona la versión actual y una clave de solicitud estable. Requiere permisos de borrador y publicación. Las publicaciones automáticas deben tener una única fecha futura; los recordatorios deben estar en cola y sin notificar. No se convierten publicaciones con intentos, revisión requerida o pertenencia a un hilo. Un recordatorio necesita un dispositivo móvil activo con sesión iniciada. La conversión vuelve a comprobar destino, plan, archivos y acceso; no confirma la entrega en la red.
Registrar el origen del editor
createDraft, createPost, createThread y cada createContentItemVariants por entrada aceptan un valor anulable source, una etiqueta de seguimiento declarada por el cliente de hasta 250 caracteres. Las herramientas MCP de creación correspondientes la admiten, incluidas las publicaciones para revisión. Un hilo comparte la etiqueta entre sus entradas; las variantes pueden usar etiquetas distintas. Consúltala mediante post.provenance.composerSource y composerSourceBasis; las herramientas get_post y Node getPost incluyen la procedencia. Las consultas normales de listas también la incluyen; las listas con métricas guardadas omiten la procedencia y los metadatos de vista previa animada para mantenerse dentro del mismo presupuesto de consulta. Consulta publicaciones individuales para obtener ambos. Omitir el campo o usar null al crear deja la etiqueta como desconocida. Las ediciones de borradores y publicaciones futuras también lo aceptan: omitirlo conserva la etiqueta y null la borra. Esta etiqueta no cambia el medio de creación registrado, no concede permisos ni demuestra autoría de IA.
Declarar asistencia de IA
Las ediciones de borradores y publicaciones futuras aceptan un valor anulable aiAssisted, incluidas las herramientas MCP edit_post. false se conserva, null elimina la declaración y omitirla la mantiene. Esto no cambia el transporte de creación ni detecta la autoría. Usa la última versión y la misma clave para reintentar sin cambios.
Reglas de cada formato
Leer configuration.services.contentRules o channel.capabilities.contentRules para cada formato de publicación automática y tipo de archivo adjunto. Las reglas incluyen el recuento de caracteres de textos y títulos, la cantidad de archivos adjuntos, los tipos de archivo permitidos y sus límites en bytes, las opciones obligatorias del canal y la compatibilidad con el primer comentario. Este catálogo describe la validación de SocialBlaze. También se aplican tu plan, los permisos actuales, las dimensiones y las comprobaciones del proveedor; no confirma la entrega. Los Reels requieren un vídeo; las Stories automáticas requieren una imagen o un vídeo.
Metadatos y menciones de canales
Consulta miembros y límites nativos del plan mediante account.organizations. Los canales incluyen IDs de destino, URLs seguras de perfil, iconos y capacidades de publicación. Pagina selecciones grandes con channels(first, afterId); MCP list_channels devuelve metadatos de paginación.
Los archivos de publicaciones y biblioteca devuelven valores guardados de mimeType, width y height cuando se conocen; los valores desconocidos permanecen en null. No es necesario descargar los medios para consultarlos. Las menciones estructuradas de páginas de Facebook y LinkedIn usan channelOptions.mentions con posiciones de inicio y longitud medidas en puntos de código Unicode y una etiqueta coincidente. Consulta post.annotations para menciones validadas y enlaces literales. Se rechazan los rangos no válidos o superpuestos; los textos modificados deben proporcionar posiciones de mención actualizadas.
Procedencia registrada y estado de cuenta
Leer post.provenance para registrar el medio de creación y la asistencia de IA declarada opcionalmente por quien realiza la llamada. Establece aiAssisted explícitamente cuando se conozca; lo desconocido permanece null. Solicitar desde un cliente de IA no demuestra que la IA redactara el texto. La declaración de vídeo del proveedor tiene su propio ajuste.
account.preferences devuelve tus códigos guardados de calendario y visualización de hora cuando se conocen. Las consultas de canales distinguen queuePaused, workspacePublishingPaused y credentialsExpired; pausar la publicación no significa por sí mismo que caducaran las credenciales.
Recuento de texto por red
Bluesky usa etiquetas de URL visibles compactas y conserva los destinos completos en facetas indexadas por bytes UTF-8. Los textos guardados conservan las URLs originales. Mastodon aplica los metadatos de su instancia y las reglas oficiales de grafemas, URLs y menciones remotas; las advertencias cuentan literalmente. Consulta textLimitsBasis, textLimitsMetadataAvailable y charactersReservedPerUrl en las capacidades de publicación para distinguir los metadatos actuales de la instancia de los valores de respaldo conservadores. Las consultas de metadatos son limitadas y se almacenan en caché.
Fotos, vídeos y entrega de TikTok
Los textos de fotos admiten 4.000 unidades UTF-16 y un título opcional de hasta 90. Los de vídeo admiten 2.200. Establece channelOptions.isAiGenerated explícitamente para la declaración del vídeo; true se rechaza en fotos. Las futuras ediciones conservan false explícito. Consulta tiktokPostingChoices(channelId) o MCP get_tiktok_posting_choices para conocer las opciones de privacidad reales, las restricciones de interacción y la duración de vídeo del creador seleccionado. Estas consultas pueden usar una caché de hasta 60 segundos; la publicación vuelve a validarlas. Elige explícitamente la audiencia y el consentimiento. Un identificador de publicación devuelto confirma la aceptación: las publicaciones de desarrolladores siguen en procesamiento hasta que una devolución de llamada verificada del proveedor o una consulta limitada de su estado confirme la entrega del mismo intento original. La verificación del estado no envía otra publicación. La URL pública puede seguir siendo desconocida.
Menciones en imágenes de Instagram
Establece images[].userTags con un valor público handle sin @ y numérico x/y posiciones de 0 a 1. Usa hasta veinte identificadores únicos por imagen. Las imágenes del feed y los elementos secundarios de carruseles admiten menciones posicionadas; los carruseles principales y las Stories automáticas no. Elimina las menciones posicionadas antes de programar una Story automática. Estos campos son exclusivos de Instagram; se rechazan los identificadores y las coordenadas no válidos o duplicados. Las plantillas de la biblioteca conservan las menciones de imagen al reutilizarse. No son etiquetas internas de contenido.
Recordatorios de publicación manual
Establece publishingMethod: reminder para los canales seleccionados. Cada uno recibe su propio recordatorio. Activa primero las notificaciones en la aplicación móvil de SocialBlaze con la sesión iniciada. El recordatorio conserva un borrador preparado y abre su contenido cuando llega la hora; nunca publica automáticamente. Se admiten una fecha explícita, el siguiente espacio de la cola manual y la prioridad. changeReminder lo reprograma, lo cancela o registra tu propia confirmación de publicación. Para los recordatorios de Instagram, stickerFields pueden contener música, productos, texto, temas y otras instrucciones finales, de hasta 2.000 caracteres cada una. La pantalla de recordatorio permite verlas y copiarlas. Añádelas tú en Instagram; la publicación automática rechaza campos finales con contenido. Una notificación enviada o confirmación manual no acredita entrega en la red. Una solicitud multicanal comparte archivos y guarda todo o nada. Eliminar el elemento cancela todos los recordatorios pendientes. Para revisión, añade requestApproval: true, posts:review y consentimiento explícito posts:publish. El recordatorio espera aprobación, no publica automáticamente y se cancela al retirar o invalidar la revisión.
Ajustes de vídeo de YouTube
Elige privacy y madeForKids explícitamente. Consulta configuration.youtubeCategories para obtener los identificadores de categoría del proveedor y establece categoryId cuando sea necesario. Opcional embeddable, license (youtube o creativeCommon), notifySubscribers y isAiGenerated llegan a la subida nativa de YouTube. Se conservan los valores false explícitos. Puedes editar estos ajustes en una publicación futura mediante updatePost.channelOptions sin sustituir su vídeo. La declaración de IA se refiere a contenido realista alterado o sintético; sigue los requisitos de divulgación de YouTube.
Portadas de vídeo
Para un vídeo de Instagram, TikTok o Pinterest, establece thumbnailOffset en las opciones del canal al desplazamiento del fotograma de portada en milisegundos. Debe estar dentro de la duración del vídeo importado. Para una publicación futura que pueda modificarse de forma segura, updatePost puede cambiar la portada de una importación propia o sustituir vídeo y portada a la vez. Las publicaciones nativas admiten la edición si usan una importación compatible del cliente; una URL externa arbitraria no permite editar solo la portada. Omitir archivos y horario conserva los existentes. Reutiliza la clave ante respuesta incierta. Pinterest recibe el desplazamiento de fotograma en segundos enteros y admite un MP4/MOV importado de hasta 50 MB; se carga y procesa antes de crear el pin. Los reels de Instagram también aceptan shareToFeed, incluido false explícito. Otros canales y las historias de Instagram rechazan estas opciones.
Las ediciones futuras requieren la versión actual y más de dos minutos hasta la publicación. No se modifican publicaciones en curso o entregadas. Editar si un reel aparece en el feed conserva vídeo y portada si se omiten. Para Pinterest, edita channelOptions.destinationUrl para cambiar su enlace de destino; un null explícito borra el enlace guardado. Las consultas de publicaciones devuelven ese valor en ambos destinationUrl y las opciones del canal. Estas ediciones no publican inmediatamente.
Tarjetas de enlaces
Para publicaciones estándar de Facebook, LinkedIn, Bluesky o Threads sin otros adjuntos, proporciona linkUrl en las opciones del canal. LinkedIn y Bluesky también aceptan linkTitle y linkDescription. Facebook y Threads usan la vista previa del sitio de destino. LinkedIn y Bluesky también aceptan linkThumbnailUrl con la URL del enlace: un JPEG, PNG o WebP público directo de hasta 1.000.000 bytes, con ocho vistas previas distintas por solicitud. Se importa de forma protegida y se sube al proveedor; si la subida falla, se detiene antes de publicar. Guarda una vista previa nueva en el borrador antes de enviarlo. Null borra una vista previa guardada. Los enlaces HTTPS no pueden contener credenciales. No se extrae contenido de páginas en el servidor. Edita las tarjetas futuras con updatePost.channelOptions; un valor null explícito linkUrl elimina la tarjeta y su título y descripción. Eliminarla y sustituir archivos es atómico. Las opciones de borrador combinan los campos cambiados explícitamente; una lista vacía restablece todas las opciones.
Ubicaciones y temas de Threads
Las publicaciones del feed y reels de Instagram y las de Threads aceptan un identificador numérico del proveedor locationId y opcionalmente locationName. Los elementos secundarios de un carrusel de Instagram no reciben la etiqueta. Las historias automáticas rechazan esta opción. Threads también acepta un topic hasta 50 unidades UTF-16, sin ampersand ni punto. Las opciones omitidas se conservan en futuras ediciones; null las borra.
Advertencias de contenido y declaración de IA
Mastodon acepta spoilerText; la advertencia cuenta literalmente y comparte el límite de caracteres de la instancia con el texto preparado. Las reglas de URLs y menciones remotas se aplican al texto, no a la advertencia. Usa null para eliminarla. Los vídeos de Instagram, YouTube y TikTok aceptan isAiGenerated. Instagram lo envía solo en el contenedor principal. Las opciones de red incompatibles se rechazan antes de guardar publicaciones.
Primeros comentarios
Los primeros comentarios tienen límites UTF-16 separados: Facebook 5.000, Instagram 2.200, LinkedIn 1.250 y Threads 500. Consulta maxFirstCommentLength y firstCommentLengthUnit de la capacidad del canal. Los emojis pueden contar como dos unidades. Los destinos no compatibles y las Stories rechazan los comentarios; el texto nunca se recorta sin aviso. Siguen aplicándose los permisos del plan actual.
Límites de texto
La mayoría de los textos de desarrollador se cuentan en unidades UTF-16, donde muchos emojis valen dos. Las URLs HTTP(S) de LinkedIn cuentan como 24; los saltos lógicos de Instagram, como dos. Facebook admite 5.000 y Instagram 2.196; los títulos de Pinterest y YouTube, 100. Google Business conserva 1.500. Mastodon usa metadatos limitados de instancia y un valor conservador de respaldo; consulta capacidades para conocer la base. Bluesky cuenta grafemas tras compactar las etiquetas visibles, conservando destinos completos. Los textos originales no cambian. Consulta las capacidades del canal para el límite y unidad actuales.
Publicaciones de Google Business
Usar channelOptions.businessPost para actualizaciones normales, eventos y ofertas. Los eventos y las ofertas necesitan un título y fechas locales de inicio y fin. Las horas opcionales emparejadas usan HH:mm; omitir ambos cubre el día local completo. La programación UTC es independiente. Las actualizaciones y eventos admiten botones; las ofertas usan cupón, enlace de canje y condiciones. Las llamadas usan el teléfono del negocio sin URL. Los demás botones requieren HTTPS. Estas opciones necesitan publicación automática, mantienen límites de texto e imagen y no confirman entrega.
Audio de Instagram
Busca música con licencia y sonidos originales mediante las consultas del catálogo. Se requiere Facebook Login. Para un reel de un vídeo, proporciona ID de audio y volúmenes opcionales en las opciones del canal. Las vistas previas caducan y los errores de permisos o resultados parciales son explícitos. Las opciones guardadas sobreviven al envío posterior.
Hilos ordenados
Bluesky, Mastodon y Threads admiten entre 2 y 25 entradas. Las respuestas esperan a que se confirme la entrega del mensaje anterior. Reprogramar o cancelar la raíz mantiene agrupadas sus respuestas futuras seguras. Bluesky y Threads aceptan linkUrl; Bluesky también linkTitle, linkDescription y linkThumbnailUrl protegido. Las tarjetas no se combinan con otros archivos; Threads usa la vista del sitio. Mastodon rechaza tarjetas. Los hilos admiten ocho adjuntos y un máximo de 100 publicaciones de destino.
Programar un hilo
mutation {
createThread(requestKey: "launch-thread-001", channelIds: ["YOUR_CHANNEL_ID"],
mode: schedule, dueAt: "2026-11-01T14:00:00+00:00",
entries: [{text: "First part"}, {text: "The follow-up"}]) {
contentItemId accepted posts { id status thread { rootPostId parentPostId position total } }
}
}
Editar adjuntos de un hilo futuro
Usar updateContentItem.threadEntries o la herramienta denominada edit_content_item para sustituir o borrar archivos adjuntos y opciones de enlace del hilo completo existente. Proporciona todas las entradas en orden, su texto, la versión actual del grupo y una clave de solicitud estable. Los archivos omitidos no cambian; images: [] o clearMedia: true los elimina. Los archivos compartidos se importan una vez por entrada para todos los canales. Todos los destinos deben estar sin intentos de publicación, sin publicar y a más de dos minutos en el futuro. La edición completa se guarda de forma atómica. Conserva la misma cantidad de entradas y edita la programación por separado; no se admiten cambios de cantidad ni ediciones combinadas de medios y programación.
Filtros de grupos de contenido
Filtrar contentItems por draftContent o postContent, y ordenar por createdAt y updatedAt. La búsqueda se limita por defecto a tu integración. El valor explícito discovery: workspace requiere una autorización independiente content:read más posts:read; las credenciales existentes no lo obtienen automáticamente. También lee grupos visibles según tus permisos nativos y canales seleccionados. Se excluyen grupos con destinos inaccesibles, incluidos texto y archivos compartidos. Comprueba managedByCurrentIntegration; los cambios de grupo entre integraciones siguen bloqueados, mientras los cambios individuales conservan sus comprobaciones. Los cursores vinculan búsqueda, filtros, orden y acceso; reinicia la paginación si cambian. SDK0.1.14 proporciona contentItems(options) y contentItem(id, options) funciones auxiliares de lectura.
Revisión del equipo
Usar posts:review y requestApproval: true para crear publicaciones con la publicación suspendida. requestPostApproval envía una publicación existente sin publicar a revisión. withdrawPostApproval lo devuelve a borrador solo cuando tus permisos nativos de aprobación lo permiten. El permiso de revisión nunca concede publicación automática.
UNA CAMPAÑA / CANALES DISTINTOS
Adapta cada destino.
Usar createContentItemVariants cuando cada canal necesita un texto, título, archivo, opción nativa o programación diferente. Proporciona identificadores distintos de los canales seleccionados en posts. El grupo admite hasta 25 destinos y ocho adjuntos en total, dentro de los límites existentes. Los archivos idénticos comparten una importación protegida.
Crear variantes independientes por canal
mutation Campaign($key: String!, $posts: [ContentVariantInput!]!) {
createContentItemVariants(requestKey: $key, title: "Product launch", posts: $posts) {
contentItemId accepted published
posts { id channelId text title status isDraft publishingMethod
manualReminder { state providerDeliveryConfirmed } dueAt version }
}
}
# Each posts entry supplies its own channelId, text, optional media,
# channelOptions, mode and dueAt. Read real channel IDs first.
Validar y guardar es atómico: si falla una variante, no se guarda una campaña parcial. Cada entrada usa por defecto la cola o su fecha indicada. Utiliza mode: publishNow solo para un envío inmediato intencional. Establece requestApproval: true para una revisión del equipo con la publicación suspendida. La aceptación sigue sin confirmar la entrega.
Leer contentItem.hasChannelVariants y la versión del grupo; después lee los IDs individuales para detalles completos. Edita individualmente para conservar textos distintos. Una edición de grupo aplica deliberadamente el mismo cambio a todos los destinos futuros seguros. Las versiones individuales y de grupo son distintas.
Convertir un borrador existente
Lee un borrador sin canal, propiedad de la integración y sin enviar, y su versión de grupo. Llama a promoteContentItemDraft con un valor no vacío posts lista para convertir el mismo elemento de contenido en publicaciones distintas por canal. Cada entrada proporciona su propio identificador de canal, texto explícito y, opcionalmente, medios, opciones nativas y programación. El texto y los archivos originales permanecen guardados; si una entrada omite los medios, no los hereda.
Convertir un borrador en variantes por canal
mutation Promote($id: ID!, $version: String!, $key: String!,
$posts: [ContentVariantInput!]!) {
promoteContentItemDraft(id: $id, version: $version, requestKey: $key,
posts: $posts) {
contentItemId accepted published
posts { id channelId text status isDraft publishingMethod
manualReminder { state providerDeliveryConfirmed } dueAt version }
}
}
# Each entry needs its channelId and explicit text, plus any media/options.
# Read the existing draft's ID/version first; do not mix posts and channelIds.
Utiliza por canal posts o el recurso compartido existente channelIds formato. No los combines ni mezcles las opciones de cada entrada con las opciones generales de programación. Si falla un destino, no se guarda una promoción parcial. Reutiliza la misma clave de solicitud al reintentar sin cambios; un borrador enviado no puede promocionarse de nuevo con una clave nueva. Solicitar una revisión requiere drafts:write y posts:review; el envío automático requiere posts:publish. Se mantienen las reglas nativas de aprobación del equipo. Las entradas utilizan ContentVariantInput. Cada entrada acepta un valor anulable aiAssisted: false se mantiene, null u omisión dejan desconocida la asistencia, y el texto modificado no hereda la declaración del borrador original. Cada destino puede seguir como borrador, publicarse automáticamente o usar recordatorio. Conserva contentItemId para limpiar el grupo completo.
Acortamiento automático de URLs por flujo
El acortamiento se ejecuta antes del guardado final mediante los conectores del autor. Los ajustes no se desactivan silenciosamente. La compatibilidad depende del flujo, adjuntos y opciones de canal; las combinaciones incompatibles devuelven un error que indica cómo actuar.
Flujo de trabajo
Funciones disponibles
Promoción automática
Publica ahora, programa, añade a cola o prioriza mediante el perfil nativo compatible de texto y archivos. Se mantienen límites, horarios y permisos actuales.
Adjuntos
Imágenes y carruseles dentro de los límites nativos, vídeos individuales compatibles y PDF de LinkedIn. Proporciona las opciones de privacidad y consentimiento de YouTube y TikTok cuando se requieran; nunca se deducen.
Borradores de destino guardados
El texto, las imágenes y los vídeos guardados permanecen sin activar, también tras revisión. Los grupos heterogéneos pueden conservar archivos distintos junto a entradas automáticas y manuales. Guardar no requiere un nuevo inicio de sesión para publicar.
Activa un destino existente
Usa el mismo ID con contenido y archivos actuales y un modo y fecha nuevos. Las opciones guardadas, transformaciones aprobadas y revisión explícita se validan por separado.
Subtipos de historias y reels
Las historias de Facebook e Instagram conservan un único archivo y no admiten primer comentario. Los reels requieren vídeo. Los subtipos se conservan: las imágenes no se convierten en reels.
Revisar
Se aplican las políticas nativas de propietario, equipo, canal y destinatario. La revisión de clientes por gestores requiere el formato nativo de destinatarios. La revisión del programador de equipos aprovisionados admite canales de aprobación según la política actual; quien llama no elige destinatarios. Se rechazan combinaciones antiguas incompatibles. La revisión con el mismo ID mantiene inactiva la programación; la revisión guardada no activa la publicación. Aprobar no publica.
Grupos heterogéneos
Combina destinos guardados, automáticos y con recordatorio del catálogo nativo de texto y archivos. Cada entrada admite las opciones implementadas según su tipo, incluidos metadatos, vistas previas y menciones estructuradas. El audio automático de Instagram utiliza comprobaciones del catálogo; el audio guardado o manual permanece inactivo, sin consulta ni OAuth de publicación hasta una acción posterior. Las opciones obligatorias de YouTube y TikTok siguen siendo explícitas; se rechazan opciones desconocidas y combinaciones incompatibles.
Cola y prioridad
Las entradas automáticas usan la reserva nativa de horarios. Las manuales conservan la cadencia y los movimientos de recordatorios, con los requisitos actuales de dispositivo y configuración.
Sitio web nativo
Compartir, reprogramar sin otros cambios y clonar elementos finalizados usa permisos nativos y ajustes del autor original. El historial se conserva; publicar automáticamente sigue requiriendo aprobación y sesión actuales.
Opciones y metadatos de canales
Los metadatos nativos, las observaciones de vistas previas, audio y portadas y las menciones estructuradas de Facebook y LinkedIn siguen sus flujos validados. Las URLs permanecen literales; los campos antiguos opacos no se consideran opciones estructuradas.
Selecciones UTM existentes
Las selecciones UTM persistidas del creador conservan el orden nativo, incluida la conversión de fábrica cuando el acortamiento está desactivado. No se añade un selector UTM público.
El perfil básico de texto cubre Facebook, Bluesky, LinkedIn, Threads, Tumblr, Google Business Profile, Mastodon y WordPress. Las imágenes incluyen Instagram y Pinterest; los vídeos, YouTube, TikTok y otros servicios validados. La promoción programada uniforme y las transiciones existentes tienen catálogos separados; los grupos mixtos no admiten opciones arbitrarias. Se requieren privacidad, consentimiento y validación nativa actuales. Guardar no activa y revisar no autoriza publicar. Consulta allowedActions y versiones actuales; retira la revisión pendiente antes de borrar cuando esa acción esté disponible. Aceptar la preparación y acortar no confirma entrega.
Guarda un destino antes de programarlo
Establece saveToDraft: true en una entrada para guardar un borrador asociado a un canal. Requiere drafts:write, sin permiso de publicación ni un nuevo inicio de sesión para publicar. Guardar no crea programación ni recordatorio. Los valores de modo y fecha guardados no programan ni se reutilizan como instrucciones; elige modo y fecha nuevos al programar explícitamente. No se acepta null en saveToDraft.
Lee el ID del destino y su última versión y utiliza armDestinationDraft o la herramienta denominada arm_destination_draft para programar esa misma publicación. La herramienta nombrada llama al identificador postId. Elige publishNow, schedule con dueAt, addToQueue o prioritize. Si omites el modo, una fecha proporcionada selecciona programación; en otro caso se usa la cola. La publicación automática comprueba permisos, acceso, archivos, aprobaciones y estado de sesión.
Programar el destino guardado
mutation ScheduleSavedDraft($id: ID!, $version: String!, $key: String!,
$when: String!) {
armDestinationDraft(id: $id, version: $version, requestKey: $key,
mode: schedule, dueAt: $when) {
id version deleted
}
}
# Use the destination post ID and its latest version, not the group ID.
# Then read the post to check publishing state; this is not a delivery receipt.
Devolver un destino futuro a borrador
Para un destino automático gestionado por el propietario cuya publicación no haya empezado, updatePost(saveToDraft: true) puede conservar ID de destino, grupo y adjuntos desactivando una única programación futura. Proporciona versión actual y clave estable, con permisos de publicación y borrador. Deben faltar más de dos minutos. Devuélvelo primero y edita después el borrador; revisión, recordatorio, hilo e intentos conservan sus flujos específicos. Actívalo explícitamente cuando esté listo.
Revisar un borrador guardado
En un canal sujeto a aprobación, combina saveToDraft: true con requestApproval: true. Requiere permisos de borrador y revisión. Aprobar no activa la publicación: programa explícitamente la versión aprobada sin cambios. Editarla exige una nueva aprobación. En cambio, solicitar revisión al programar explícitamente una publicación automática suspende esa programación hasta aprobarla.
Mantén explícita la publicación manual
Establece para una entrada su publishingMethod: reminder cuando alguien vaya a terminar la publicación desde su teléfono. Un borrador guardado conserva esa opción sin necesitar un dispositivo. Al programarlo después, omitir el método de publicación conserva la opción guardada; un método explícito vuelve a seleccionar ese método. No se acepta null. Programar un recordatorio requiere permisos de borrador y publicación, un dispositivo activo con sesión iniciada y notificaciones, y cualquier aprobación necesaria. publishNow pone en cola un recordatorio que vence ahora; no publica automáticamente en la red.
Leer isDraft, publishingMethod y manualReminder.state juntos. Una entrada guardada pendiente de revisión sigue siendo un borrador, y una opción guardada de recordatorio todavía no tiene un recordatorio activo. providerDeliveryConfirmed: false no demuestra la entrega a la red. Los grupos mixtos pueden contener entradas guardadas, programadas y de recordatorio; las acciones de cada publicación siguen siendo independientes. Usa edit_post con draft: true para editar un destino guardado seguro y el valor canónico deleteContentItem o delete_content_item para limpiar el grupo completo. Retira primero la revisión pendiente. Si la publicación ya está tomada para procesamiento o tiene un resultado incierto, se debe conciliar su estado en lugar de eliminarla a ciegas.
Herramientas específicas para clientes de IA
get_publishing_configuration y get_channel muestran requisitos reales de archivos y consentimiento. Utiliza list_content_items, get_content_item, create_content_item_draft, promote_content_item_draft y create_content_item_variants sin escribir GraphQL. Las herramientas de edición, eliminación y asociación conservan las mismas comprobaciones de alcance, versión y reintento.
03 / TU BIBLIOTECA ACTUAL
Reutiliza tu contenido guardado.
Consulta, crea y edita plantillas de tu biblioteca real de SocialBlaze. Reutiliza texto, imágenes, vídeos y PDF en borradores. Editar requiere la versión actual. Eliminar una plantilla conserva los archivos compartidos.
Explorar plantillas de la biblioteca
query {
libraryItems(first: 20) {
nodes { id title text description emoji visibility version assets { type url title altText } }
pageInfo { endCursor hasNextPage }
}
}
Usar createDraftFromLibraryItem con su identificador, versión, clave de solicitud y canales seleccionados. El acceso a la biblioteca respeta tu plan y los permisos actuales del equipo.
Las plantillas aceptan descripción opcional de hasta 1.000 caracteres, emoji de hasta 32 y visibilidad: internal para tu espacio de trabajo o private para su creador. Las plantillas existentes y aquellas cuya visibilidad se omite siguen siendo internas. Solo el creador puede convertir una plantilla compartida en privada; las plantillas privadas se ocultan a otros miembros en la API, la biblioteca nativa y las consultas móviles. Filtra libraryItems(visibility: private) o internal. No existe un catálogo público de plantillas seleccionadas. null elimina descripción o emoji; omitir campos los conserva. Las ediciones nativas mantienen estas opciones.
04 / DATOS PARA TUS HERRAMIENTAS
Crea el informe que necesitas.
La recopilación explícita de TikTok enumera solo vídeos públicos. enumerationComplete describe el recorrido de esa fuente; complete permanece en false porque se excluyen las fotos y los vídeos privados. Consulta basis y note en los informes, las referencias agregadas y la cobertura de clasificaciones antes de interpretar los totales o los resultados vacíos.
Los informes normales, métricas individuales, clasificaciones y agregados usan datos existentes del sitio e instantáneas guardadas. Leer no contacta con proveedores ni solicita o actualiza recopilaciones. Las métricas varían por red; lo no disponible sigue desconocido, nunca cero.
Leer una instantánea de rendimiento existente
query Report($channel: ID!, $start: String!, $end: String!, $report: ID,
$first: Int = 20, $after: String) {
channelReport(channelId: $channel, startDate: $start,
endDate: $end, reportId: $report) {
id state complete basis note enumerationComplete metricsUpdatedAt expiresAt errorCode
metrics { key value status basis }
posts(first: $first, after: $after) { nodes { externalId text publishedAt publicationDate publicationTimeBasis
metrics { key value status } }
pageInfo { endCursor hasNextPage } }
}
}
Leer readMode, storedAnalytics y los intervalos guardados disponibles cuando no hay informe normalizado. Las secciones conservan etiquetas y bases originales. Una fecha de actualización de fila no demuestra que todas sus métricas se recopilaran entonces. Los datos ausentes siguen no disponibles; caducar un token de publicación no impide por sí solo una lectura histórica autorizada. Las fechas se limitan al historial disponible. Revisa complete, de cada métrica, su status y su basis antes de interpretar totales. Cada informe y agregado identifica su red. El agregado metricsUpdatedAt es la marca temporal conocida más reciente que contribuye al resultado; oldestMetricsUpdatedAt indica el instante más antiguo que contribuye al resultado y permanece en null cuando una fuente lista tiene una antigüedad desconocida.
Las estadísticas opcionales de vídeo de LinkedIn incluyen por publicación valores únicos de viewers y totalTimeWatched en minutos. Los espectadores únicos nunca se suman entre publicaciones. Instagram follows es un recuento atribuido a las publicaciones del feed y las Stories aptas, no a los Reels ni al crecimiento neto de seguidores. Estos valores dependen del acceso al proveedor y de la disponibilidad; los valores no disponibles permanecen en null. No se infiere ninguna unidad de tiempo de visualización de Instagram.
El recorrido de informes de LinkedIn está limitado. Si se alcanza el máximo de páginas o no se puede avanzar con seguridad, pueden devolverse filas observadas con cobertura parcial. Los totales describen solo ese subconjunto, no todas las publicaciones. Lee notas y estado antes de comparar canales.
Las filas de rendimiento pueden mostrar publicationDate y publicationTimeBasis por separado de publishedAt. Un día histórico del calendario nativo con zona horaria desconocida conserva publishedAt: null; no inventes una hora de publicación a medianoche UTC. Mantén separadas las publicaciones de cada red aunque enlacen al mismo artículo.
Leer secciones de analítica guardadas del sitio
Usar storedChannelAnalytics o la herramienta MCP denominada get_stored_channel_analytics con analytics:read, un canal autorizado y fechas exactas de inicio y fin. Cada sección identifica fuente, disponibilidad y base de fechas. availableRanges enumera los rangos guardados; no sustituye las fechas solicitadas por uno de ellos. Una sección de datos sin procesar no disponible o demasiado grande no demuestra que no existan publicaciones; comprueba su código de error y la consulta paginada channelReport proyección.
Para TikTok, Pinterest, Tumblr y WordPress, el report sección puede mostrar una recopilación explícita ya guardada, etiquetada como saved_developer_report. Son datos de un informe guardado, no prueba de que los recopilara un recolector del sitio nativo. Sin informe coincidente, no están disponibles; la lectura no crea uno. Un informe puede estar listo mientras complete o enumerationComplete es false. Conserva la cobertura parcial y las métricas no disponibles al informar de los resultados.
Leer analítica nativa guardada y procedencia
query StoredAnalytics($channel: ID!, $start: String!, $end: String!) {
storedChannelAnalytics(channelId: $channel, startDate: $start, endDate: $end) {
channelId service state complete basis note errorCode
metricsUpdatedAt recordUpdatedAt freshness
availableRanges { startDate endDate recordUpdatedAt }
sections { name available source data rangeBasis startDate endDate
metricsUpdatedAt recordUpdatedAt freshness errorCode note }
}
}
# This reads saved data only. Use actual channel IDs and the requested dates.
# availableRanges does not silently replace a missing requested date range.
Al paginar informes normalizados, conserva juntos ID, canal y fechas y pasa posts.pageInfo.endCursor como el siguiente after. Al cambiar de instantánea, empieza sin cursor. Una métrica guardada de publicación y un informe incompleto de canal pueden tener coberturas distintas; muestra el estado y la base de cada uno.
Recopila datos nuevos del proveedor solo cuando se solicite
Utiliza explícitamente refreshChannelReport modificación o la herramienta MCP denominada refresh_channel_report solo después de que el usuario solicite recopilar nuevos datos del proveedor. La recopilación puede requerir permisos actuales de análisis del proveedor y consume el presupuesto independiente de actualización. Puede devolver un estado en cola; consulta el mismo identificador de informe y las mismas fechas devueltos con channelReport. Las lecturas normales nunca inician sesión, reconectan cuentas ni arrancan automáticamente esta operación.
Recopilar explícitamente un informe nuevo
mutation CollectNewReport($channel: ID!, $start: String!, $end: String!) {
refreshChannelReport(channelId: $channel, startDate: $start, endDate: $end) {
id channelId state complete errorCode
}
}
# Only run after an explicit request to collect new provider data.
# If queued, poll channelReport using the returned report ID and dates.
Incluir métricas guardadas al leer publicaciones
Establece includeMetrics: true en post o posts, o la herramienta MCP get_post y list_posts. Proporciona metricSnapshots con un identificador de canal, un identificador de informe y fechas coincidentes de inicio y fin para cada canal. Ambos posts:read y analytics:read son obligatorios. Solo lee instantáneas existentes, sin contactar con redes ni iniciar recopilaciones. Consulta metricsState, metricsErrorCode, el estado y la base de cada métrica y metricsUpdatedAt. Las métricas ausentes permanecen en null. El historial guardado puede estar desactualizado: conserva sus indicadores de antigüedad en lugar de considerarlo recién recopilado. Omite la opción en lecturas normales; se aplican los límites habituales de selección y complejidad.
Para las herramientas MCP list_posts con includeMetrics: true, la selección predeterminada completa y una instantánea fijada, omitiendo first devuelve actualmente hasta 18 filas con el límite estándar de 1.000 puntos. Más instantáneas pueden reducir ese valor. Un valor explícito first nunca se reduce sin aviso: 19 filas completas con una instantánea superan ese límite. Las listas normales de publicaciones siguen usando 20 de forma predeterminada; seleccionar menos campos puede permitir páginas mayores. Sigue pageInfo.endCursor en lugar de suponer que una respuesta contiene todas las publicaciones. Este ajuste automático de página corresponde a la herramienta nombrada; una consulta explícita de GraphQL debe elegir un tamaño de página compatible con su selección.
Leer métricas de una instantánea existente
query SavedPostMetrics($id: ID!, $pins: [PostMetricSnapshotInput!]!) {
post(id: $id, includeMetrics: true, metricSnapshots: $pins) {
id metricsState metricsErrorCode metricsUpdatedAt
metrics { name value unit status basis comparisonBasis }
}
}
# pins: [{channelId: YOUR_CHANNEL_ID, reportId: EXISTING_REPORT_ID,
# startDate: MATCHING_START_DATE, endDate: MATCHING_END_DATE}]
# Supply these as JSON variables, using the snapshot's actual IDs and dates.
Contar registros locales de publicación
publishingActivity cuenta registros automáticos conservados según creación original y zona horaria elegida. Cada destino y entrada de hilo cuenta por separado. Incluye borrado lógico, excluye borradores y recordatorios y no recupera registros purgados ni historial exclusivo del proveedor. Los borradores nativos pueden conservar fechas anteriores tras enviarse. No son fechas históricas exactas de envío o publicación; currentlyDelivered describe el estado actual de estos registros. Conserva visibles la base y la nota.
recordedCommitEvents cuenta por separado los intentos nativos conservados según la fecha registrada de confirmación del proveedor, independientemente de las fechas originales de creación. Una republicación intencional vuelve a contar. La aceptación puede preceder al procesamiento o la entrega, por lo que estos totales no son totales de entrega. Conserva commitEventBasis, commitEventCountUnit, commitEventNote y el valor false de commitEventHistoryComplete indicador visible.
publishedActivity cuenta destinos conservados actualmente entregados cuya hora nativa válida cae en el intervalo y zona solicitados. Usa las mismas reglas temporales que el valor anulable post.publishedAt; las fechas de creación, edición, programación y confirmación no las sustituyen. Cada destino o entrada de hilo cuenta por separado, incluidos los registros con borrado lógico agregado. Conserva rangeStartUtc, rangeEndUtcExclusive, basis, countUnit y complete: false. unknownTimeExcluded cuenta todos los registros entregados conservados con hora desconocida, no publicaciones desconocidas asignadas a este mes. El historial purgado, sobrescrito o solo del proveedor queda fuera del subconjunto con hora conocida.
Utiliza las herramientas MCP get_published_activity, Node publishedActivity o la CLI tools call get_published_activity. Lee registros locales sin recopilar datos del proveedor. La cohorte de creación original publishingActivity y el valor basado en confirmaciones recordedCommitEvents conservan sus significados independientes.
Clasificar el rendimiento observado
rankedPosts requiere una métrica explícita y una de estas opciones lifetime o period_total como base. Se excluyen valores desconocidos y bases incompatibles; cero sigue siendo una puntuación real. La cobertura distingue fuentes completas, parciales, en cola y no disponibles. Reutiliza IDs para comparaciones estables. Cada resultado identifica su unidad; las tasas usan porcentajes y conservan su base. No se mezclan fórmulas distintas ni se suman tasas. El alcance único de LinkedIn no se suma entre publicaciones. En Facebook, los me gusta se separan de las reacciones totales si el proveedor los devuelve; lo ausente permanece null. El rendimiento no demuestra causalidad del texto.
Las herramientas MCP específicas son get_publishing_activity y rank_posts. Los métodos del SDK son publishingActivity y rankPosts.
05 / CREA PARA OTROS USUARIOS
Conecta con OAuth.
Registra en la consola un cliente público PKCE o una aplicación confidencial de servidor. Indica URLs exactas de retorno, ámbitos y URL de privacidad. Cada cliente elige sus canales y puede desconectar la aplicación.
Genera un verificador aleatorio y su desafío S256. Conserva un estado aleatorio para comprobar la respuesta.
Abre /api/developer/oauth/authorize con identificador de cliente, URI de redirección registrada, alcances, estado, desafío, code_challenge_method=S256 y el recurso solicitado.
Intercambia el código recibido en /api/developer/oauth/token, incluidos el verificador original y el recurso. Los clientes confidenciales también se autentican con su secreto.
Guarda las credenciales con seguridad. Los tokens de acceso duran una hora; los de actualización rotan y caducan a los 30 días. Nunca reutilices uno sustituido.
Los recursos son https://backend.socialblaze.ai/api/developer o su /graphql o /mcp endpoint. Los tokens de conectores de IA existentes usan una audiencia separada.
Utiliza una conexión MCP remota personalizada en un cliente compatible. El endpoint es https://backend.socialblaze.ai/api/developer/mcp. Usa OAuth si el cliente lo admite; ese flujo no necesita clave de desarrollador. Usa una clave limitada solo en clientes con autenticación Bearer segura.
La sintaxis depende del cliente. Las herramientas se filtran según los ámbitos concedidos y abarcan cuentas, canales, borradores, publicación, hilos, revisión, plantillas e informes. Los recursos de esquema y GraphQL genérico comparten permisos y cuotas. Aparecer aquí no implica estar publicado en un catálogo de conectores.
Estos ejemplos usan el endpoint MCP de desarrollador y sus herramientas limitadas actuales. Una conexión interactiva puede mostrar herramientas y cuentas diferentes. Si falta una herramienta, comprueba conexión y permisos; poder publicar no implica acceso a informes.
Estructuras genéricas de solicitudes y resultados MCP
Para un cliente MCP inicializado, pasa el valor mostrado {name, arguments} objeto como tools/call parámetros. execute_query requiere una declaración veraz summary (máximo 500 caracteres) y query; execute_mutation requiere summary y mutation. Las variables y el nombre de operación son opcionales. La consulta de cuenta requiere accounts:read; crear un borrador requiere drafts:write.
{
"name": "execute_mutation",
"arguments": {
"summary": "Save an unpublished text draft.",
"mutation": "mutation SaveDraft($key: String!) { createDraft(requestKey: $key, text: \"Draft for review\") { postId version published } }",
"variables": {
"key": "my-draft-001"
},
"operationName": "SaveDraft"
}
}
Los resultados MCP pueden establecer isError y muestran structuredContent.error o detalles de validación; una respuesta de GraphQL también puede contener errors o un objeto tipado MutationError. JSON-RPC sin procesar incluye el resultado de la herramienta bajo result y puede tener en el nivel superior error. Revisa también el contenido devuelto: HTTP 200 no basta para confirmar éxito.
Edita un borrador y vuelve a leerlo
Lee primero el ID y la versión actuales del borrador. Sustituye los marcadores por valores reales de get_post valores; no envíes los marcadores sin cambiarlos. La edición de un borrador propio usa edit_post con draft: true, texto explícito, una clave de solicitud estable y drafts:write. Omite saveToDraft, mode y dueAt para esta edición del borrador. Devuelve postId y version. El editor de publicaciones futuras devuelve en cambio id, version y deleted. Selecciona solo los campos de esa operación; recupera texto y archivos por separado mediante get_post con posts:read.
Para un borrador de la integración aún no enviado ni programado, omite draft y establece saveToDraft: true. Proporciona ID y versión actuales, una clave estable, drafts:write y archivos de sustitución; omite mode y dueAt. No combines draft: true con saveToDraft: true. Esta ruta del editor devuelve id, version y deleted, no postId. El ejemplo de PDF de LinkedIn sustituye los adjuntos por un documento. Reemplaza todos los marcadores, incluidas URL y título, y conserva el texto deseado. Vuelve a leer la publicación para comprobar archivos y estado de borrador. Esta edición no envía, programa ni publica.
Sustituir un adjunto de un borrador de LinkedIn por un PDF
Añade un paso MCP Client, elige HTTP Streamable y utiliza https://backend.socialblaze.ai/api/developer/mcp. Selecciona Bearer Auth y guarda la clave limitada en una credencial de n8n. Elige una herramienta y utiliza JSON para los parámetros anidados. Empieza con get_account o una modificación de borrador; conserva la misma clave de solicitud al reintentar un evento.
En las conexiones de tu aplicación, añade MCP Client by Zapier. Introduce el endpoint, elige Streamable HTTP y OAuth. Inicia sesión, revisa permisos y selecciona canales. Usa lectura para informes o Run Tool para borradores autorizados. Activa la gestión de errores y revisa los datos estructurados antes del siguiente paso.
Algunos editores MCP Client de Zapier envían arrays de texto como cadenas. channelIds requiere un array real. Si el editor lo aplana, usa execute_mutation con una cadena de modificación de GraphQL que contenga el literal channelIds: ["YOUR_CHANNEL_ID"]. Empieza con una fecha futura, conserva la clave y revisa los errores antes de continuar.
Utilizan clientes MCP genéricos. La disponibilidad de cuentas y los cargos del proveedor son independientes de los límites de SocialBlaze.
Publicar automáticamente requiere un permiso explícito. Usa ámbitos de revisión si quieres que un asistente prepare contenido sin publicarlo.
07 / USO PREDECIBLE
Límites con los que puedes planificar.
Límites actuales de la versión preliminar para desarrolladores, compartidos por espacio
Recurso
Límite
Unidades de trabajo de la API
60/minuto · 500/día · 7.500/mes
Archivos importados
100 MB/día · 1 GB/mes
Actualizaciones de informes
20/día · 500/mes
Publicaciones creadas mediante la API
25/canal/día
Tamaño de consulta y solicitud
16 KB de consulta · 32 KB de cuerpo JSON
Las ventanas UTC se comparten entre claves y aplicaciones; crear más claves no multiplica los límites. Solo se cobran la operación seleccionada y los fragmentos alcanzables: una unidad por cada 25 puntos de complejidad, redondeada hacia arriba, mínimo una, más dos por mutaciones. Cabeceras y metadatos MCP indican unidades y base del coste. Es una política inicial conservadora; actualizaciones de proveedores y archivos tienen presupuestos separados. Las lecturas en caché también consumen trabajo local. La publicación web y los límites de proveedores son independientes.
401: credencial caducada, revocada o inválida.
403: falta un alcance, acceso al canal o permiso del equipo.
409: versión obsoleta, datos de reintento modificados o estado de publicación no seguro.
422: revisa los detalles de validación, incluidos channels.ID.
429: sigue Retry-After; reutiliza la misma clave de mutación.
GraphQL puede devolver errores con HTTP 200. Revisa siempre errors. Cada mutación también tiene un try variante, como tryCreateDraft, con un resultado correcto tipado result o MutationError. Selecciona __typename y del error, su code, httpStatus, message, fields y retryAfterSeconds. Puede aparecer un error tipado en data con HTTP 200, por lo que también debes comprobar ese resultado.
Los clientes MCP también deben revisar isError y structuredContent: pueden aparecer errores como GraphQL errors, un valor tipado MutationError, error o validation detalles incluso cuando el transporte tiene éxito. Cuando esté disponible, _meta incluye httpStatus, chargedWorkUnits, los límites restantes y retryAfterSeconds. Que un cliente oculte metadatos no demuestra que la llamada fuera gratuita. Resuelve los errores de permisos o validación antes de reintentar. Si una escritura es incierta, conserva clave y entrada originales y consulta el estado guardado en lugar de crear otra publicación.
Son límites preliminares, no una garantía de que los proveedores permitan el mismo volumen.
08 / AUTOMATIZA TU TRABAJO
Empieza con un flujo pequeño.
Bot de informes del viernes
Programa una ejecución semanal, lee publicaciones entregadas e instantáneas existentes y envía el informe mediante tu propia conexión de Slack.
De formulario a borrador
Utiliza un webhook de Zapier o un nodo HTTP Request de n8n para llamar a createDraft. Guarda la credencial en el almacén de secretos de la plataforma y utiliza un ID de evento estable como requestKey.
De la biblioteca a la campaña
Selecciona una plantilla, crea el borrador y envíalo a revisión. Programa solo después de cumplir las aprobaciones.
Informes personalizados
Lleva métricas de los canales seleccionados a tu panel. Reutiliza IDs de instantáneas al consultar y conserva valores desconocidos o incompletos.
Importar un flujo de n8n
Descarga un flujo, elige Import from File en n8n, edita las entradas y añade tu credencial Bearer Auth al paso MCP Client. Todos empiezan con un activador manual y permanecen inactivos tras importar. Las claves van en credenciales, nunca en JSON.
Importado con n8n 2.43.5; llamadas MCP verificadas con un entorno API aislado. La ejecución alojada con tus credenciales se comprueba aparte. Son clientes MCP genéricos, no aplicaciones de catálogo ni plantillas publicadas de Zapier. Conserva la autorización de mensajes externos en tu flujo.
09 / EL CONTRATO REAL
Lee el esquema actual.
La referencia se genera a partir de los tipos GraphQL implementados. La introspección autenticada y el explorador muestran el contrato desplegado. SocialBlaze utiliza identificadores y esquema propios.
Proporciona a tu asistente de programación la Guía de API legible por IA para que pueda usar los endpoints, permisos, versiones y reglas de reintento correctos.
Cliente Node de servidor
El paquete versionado incluye declaraciones TypeScript y cliente de línea de comandos. Instala el archivo descargado con npm install ./socialblaze-developer-client-0.1.14.tgz. Guarda la clave en una variable de entorno del servidor.
Utiliza comandos específicos de publicaciones y borradores, tools list, tools describe NAME, tools call NAME, schema describe TYPE y doctor. Proporciona JSON directamente, desde un archivo o desde stdin. --dry-run comprueba las reglas básicas anunciadas sin llamar a la herramienta; descubrir herramientas consume cuota y no valida al proveedor ni la entrega. La CLI nunca reintenta escrituras automáticamente.
Las lecturas de publicaciones admiten postTypes y dueAtPresence filtros de formatos nativos guardados y presencia de fecha. Reinicia el cursor si cambian. Estos filtros no habilitan nuevos formatos de publicación.
La herramienta list_channels admite páginas de 1 a 100 elementos, con 20 de forma predeterminada, mediante afterId. Selecciona menos campos para páginas mayores; se aplican los límites habituales de complejidad y trabajo. Los filtros también incluyen Google Business event, offer y whats_new, según los metadatos nativos guardados. Estas categorías se solapan deliberadamente con las publicaciones ordinarias y no habilitan nuevos formatos.
Node getPost y contentItem devuelven las URL de los archivos, incluidas las vistas previas estáticas y animadas. Node listPosts conserva su proyección compacta sin archivos; usa una consulta individual o una selección explícita de GraphQL. Node getPost incluye isDraft pero conserva una proyección compacta sin estado de método de publicación ni recordatorio. Utiliza la herramienta get_post o una consulta explícita de GraphQL para esos campos; el cliente genérico y la CLI pueden ejecutar las nuevas operaciones de borradores sin cambiar el paquete inmutable del SDK.
Seleccionar campos de respuesta
Las llamadas específicas de CLI aceptan --fields 'id,text' y grupos relacionados como --fields 'nodes.{id,text},pageInfo.endCursor'. Las rutas son relativas al resultado indicado. El servidor construye una selección GraphQL menor y la valida antes de ejecutarla. Los cargos reflejan esa selección. Conserva IDs y versiones al seguir escrituras, y base, notas y cobertura de los informes. all restaura la selección estándar de la herramienta, no todos los campos del esquema. Las herramientas MCP nombradas aceptan el mismo fields cadena. Los metadatos de paginación de canales siguen disponibles cuando los campos mostrados omiten los identificadores. Los comandos genéricos de consulta usan su documento explícito.
Configuración de CLI y guía para agentes
socialblaze init guarda los valores predeterminados locales; config path y config get --all permite revisarlos. Se recomiendan credenciales de entorno. Solo una opción explícita init --save-token guarda un token en un archivo global sin cifrar fuera del proyecto actual. La configuración del repositorio solo admite zona horaria y tiempo de espera, y no puede aportar credenciales ni redirigir su origen. La salida de configuración oculta las claves guardadas; eliminarlas localmente no revoca la clave del servidor.
context --list enumera los temas del agente incluidos; context imprime sin conexión la habilidad y las instrucciones de informes. completion bash, zsh, fish o powershell imprime un script de autocompletado para la consola. Usa socialblaze install claude o install codex para instalar explícitamente una habilidad administrada sin conexión; uninstall claude o uninstall codex revierte una instalación sin modificaciones. Se conservan las carpetas personalizadas o enlazadas. La instalación del paquete y la inicialización no instalan habilidades ni cambian los perfiles de la consola. Las sugerencias cubren grupos de comandos estáticos. La versión 0.1.5 corrige el autocompletado anidado de zsh. Las sugerencias estáticas se comprueban en entornos reales sin conexión de bash, zsh ZLE y fish; la salida de PowerShell se comprueba con su analizador. Estas pruebas no ejecutan herramientas remotas ni autorizan publicaciones.
Leer la habilidad de agente incluida. Conserva la autorización y distingue recuentos locales, clasificación observada e historial incompleto del proveedor. Consulta la referencia de informes enlazada.
¿Necesitas ayuda con una solicitud? Escribe a [email protected] con el nombre de la operación, el estado y un código de error seguro. Nunca incluyas tu clave, token de actualización ni credenciales de redes sociales.
Tus canales.
Tu asistente de IA.
Conecta un asistente a tu espacio de SocialBlaze. Lee publicaciones e informes guardados, prepara borradores y programa con los permisos que elijas.
Mantén separada cada publicación de canal. Comprueba estado, texto, archivos y fecha.
Conecta en tres pasos.
MCP permite que un cliente de IA compatible utilice herramientas de SocialBlaze. No necesitas escribir GraphQL para leer publicaciones, crear borradores o programar mediante herramientas específicas.
Conecta tus canales
Inicia sesión y conecta las redes que quieras usar. El asistente solo ve los canales incluidos en su acceso.
Gestiona tus canalesAñade el servidor MCP
En la configuración MCP remota personalizada, introduce la URL del servidor. Elige OAuth si el cliente admite la autorización de SocialBlaze.
Autoriza y después lee
Inicia sesión, revisa las acciones y selecciona canales. Empieza con
get_accountolist_channels. Revisa los permisos solicitados. Publicar requiere una autorización explícita. Para solo lectura, el cliente debe solicitar ámbitos de lectura; la analítica requiere un permiso separado.OAuth en un cliente compatible
Usa el inicio de sesión y consentimiento del navegador. No necesitas crear ni pegar una clave API para OAuth. Ten presente la selección de canales de la conexión existente.
Las funciones y disponibilidad varían. Una conexión MCP personalizada no implica presencia en un catálogo. Para una aplicación personal de servidor, utiliza la Inicio rápido de la API; para otros usuarios, utiliza Registro de aplicaciones OAuth.
Conectar con Claude
Puede que el administrador deba añadir primero el conector. Consulta la Guía de conectores personalizados de Claude para conocer las pantallas y los requisitos de cuenta actuales.
Falta un canal conectado en mi IA
Comprueba que el canal esté desbloqueado y accesible en SocialBlaze. Reconecta desde tu aplicación de IA, revisa permisos y selecciona el canal ausente. Añadir o desbloquear un canal no lo incorpora a una conexión de IA existente; actualizarla conserva su selección. Mantén la conexión anterior hasta confirmar la nueva. No necesitas reconectar Instagram o Facebook solo para cambiar esa selección.
Si tienes permiso de analítica y ves el canal, pero falta un informe guardado, es un problema de disponibilidad de datos. Cambiar los canales seleccionados no recopila ni actualiza estadísticas.
Prueba solicitudes útiles y acotadas
«Muéstrame mis próximas 10 publicaciones programadas. Mantén cada destino de canal como una publicación independiente».
«Guarda esto como borrador. No lo publiques».
«Lee mi informe de rendimiento guardado para estas fechas. Dime qué datos no están disponibles».
Para las «últimas diez publicadas», conserva cada publicación de canal por separado aunque coincidan textos o enlaces. Los resultados abarcan los canales autorizados, no necesariamente toda la cuenta. Un informe ausente o una métrica desconocida no equivalen a cero; leer no actualiza la red. Las tarjetas están en versión preliminar. En ChatGPT, si falla la primera visualización, elige Reintentar. Si no carga una imagen, abre la publicación guardada. La disponibilidad varía entre aplicaciones y las imágenes externas pueden fallar; la vista previa no repara su origen. Programadas o aceptadas no significa entregadas: comprueba el estado antes de afirmar éxito.
El estado del servicio tiene su propia página.
Consulta pruebas actuales de servicios principales, API, MCP y publicación en redes en la Página de estado del servicio.
Sigue lo que estamos creando.
Consulta lo publicado, las mejoras actuales y los planes en la Página de hoja de ruta.
Crea tu primera solicitud a la API.
Inicia sesión, abre la consola y crea una clave. Elige canales y permisos necesarios. Copia el secreto una vez y guárdalo en el servidor.
Una clave de desarrollador es distinta del inicio de sesión web. No la incluyas en JavaScript público, URLs ni control de versiones. Publicar requiere autorización separada.
Los IDs devueltos pertenecen al acceso seleccionado. Utilízalos al crear publicaciones. La consola incluye un explorador ejecutable que mantiene la credencial en memoria durante la sesión.
Crea. Revisa. Programa. Publica.
Trabaja con publicaciones reales
Crea borradores, lee versiones y archivos, edita publicaciones futuras y cancela programaciones locales seguras.
Usa tu cola real
Publica ahora, elige fecha, añade a cola o prioriza. Mueve una publicación futura al principio o al final.
Aceptado no significa entregado. Leer
post.allowedActionspara obtener instrucciones de edición y cancelación local dentro del alcance permitido; cada modificación vuelve a comprobar la versión y el estado de publicación actuales. Consulta cada identificador de publicación devuelto para comprobar su estado, URL publicada y detalles de error. Un lote con elementos no válidos no guarda nada. Nunca reintentes una escritura de resultado incierto con una clave de solicitud nueva.Conserva
contentItemIddesdecreatePostocreateThread. Eliminar un destino puede conservar el borrador de origen. Para retirar el grupo local completo, consulta su versión actual y utilizadeleteContentItem; confirma después que el grupo y sus publicaciones ya no existen.Elige una fecha o una posición en la cola
Usar
mode: schedulecon una fecha futura explícitadueAtpor un tiempo determinado. UsaaddToQueueoprioritizesin fecha para colocarla en la cola nativa del canal. Las acciones de cola requieren la función de colas inteligentes de tu plan y permiso de publicación. Para mover una publicación futura existente, usamovePostInQueueo la herramienta MCP denominadamove_post_in_queuecon su versión más reciente y una clave de solicitud estable.Mover una publicación puede cambiar las fechas de otras en cola. Después, vuelve a leer publicaciones y versiones. Llevar al final una publicación creada en cola puede compactar la cola propia segura en sus espacios existentes; una publicación con fecha fija no pasa a ser parte de ella por coincidir en hora. La propiedad mixta, estados inseguros o espacios fijos ocupados pueden impedir el cambio. La aceptación no confirma entrega.
Leer publicaciones entregadas sin combinar canales
Lee cada publicación por separado conservando ID, canal y URL. El orden descendente por ID coincide con el feed del sitio dentro de los canales autorizados. Un permiso limitado no expone todo el espacio. Para ordenar por pruebas válidas de entrega registrada, solicita
sort: [{field: publishedAt, direction: desc}]y opcionalmentepublishedAfter/publishedBefore. Lee el valor anulablepublishedAtypublishedAtBasis.native_terminal_delivery_observedes la primera hora de confirmación terminal local, no una hora original de publicación del proveedor verificada de forma independiente; las fechas de programación, creación y edición nunca sustituyen una hora de publicación desconocida. Las horas desconocidas se ordenan al final y no permiten afirmar que se dispone de las diez últimas publicaciones en orden cronológico completo. Reinicia los cursores cuando cambien los filtros o el orden.Filtrar y paginar publicaciones
Omite
statusespara no restringir el estado. Un valor explícitamente vacíostatuses: []no selecciona publicaciones; GraphQLstatuses: nulltambién deja el filtro sin restricciones. Si proporcionas el valor singularstatusconstatuses, sus valores forman una selección, por lo que un estado singular también se aplica junto a un array vacío. Estas reglas se aplican al recuento correspondiente. CondueAten orden ascendente, las publicaciones sin fecha van primero; en descendente, al final.publishedAtmantiene las horas desconocidas al final en ambas direcciones. UsadueAtPresence: presentcuando solo quieras fechas programadas. Continúa con el valor devueltopageInfo.endCursor; empieza de nuevo sinaftercuando cambien los filtros, el orden o el acceso seleccionado, o se rechace un cursor. Un cursor guardado antes de la actualización del orden por vencimiento no puede reutilizarse para un orden que contengadueAten orden ascendente.Imágenes, vídeos y documentos
Adjunta imágenes JPEG, PNG o WebP dentro de los límites, o un vídeo MP4/MOV. Las publicaciones estándar admiten hasta 10 imágenes en Facebook, Instagram, Tumblr y WordPress; 20 en LinkedIn y Threads; 35 en TikTok; 4 en Bluesky, Mastodon y Google Business Profile; y 1 en Pinterest. YouTube requiere vídeo. Tumblr admite un vídeo H.264 MP4/MOV de hasta diez minutos y 50 MB. Una publicación compartida debe cumplir todos los destinos. Grupos e hilos mantienen ocho adjuntos totales por solicitud. Las imágenes pueden incluir una vista protegida independiente
thumbnailUrlpara su vista previa en SocialBlaze; no sustituye la imagen enviada a una red. Las imágenes también aceptan un campo protegido independienteanimatedThumbnail: vista previa pública GIF o WebP de hasta 1 MiB. Las vistas estáticas y animadas tienen sus propios límites de importación y URLs. La imagen original debe cumplir las reglas del destino. Las lecturas muestran ambas URLs;isAnimatedpermanece en null hasta que se mida la animación, por lo que una URL de vista previa no demuestra que la imagen original sea animada. LinkedIn también acepta un PDF con título y un thumbnailUrl HTTPS opcional para la vista previa de SocialBlaze. Las vistas previas deben ser archivos JPEG, PNG o WebP validados de hasta 1 MB; LinkedIn genera sus propias páginas del documento. Cada imagen tiene un límite de 8 MB, los vídeos de 50 MB y los PDF de 20 MB. Sigue aplicándose la validación específica de cada canal; consultaconfigurationychannel.capabilities.Los PDF guardados muestran valores anulables de
numPages(recuento de páginas medido) yfilesize(bytes de la importación validada). Los archivos antiguos o sin recuento de páginas disponible permanecennull, nunca un cero inventado; el tamaño medido puede estar disponible aunque se desconozcan las páginas. Estos valores describen el PDF importado almacenado, no una copia renderizada por el proveedor. Leerlos no vuelve a descargar el archivo ni completa archivos antiguos. Las herramientas MCPget_postylist_postsincluyen los campos. Para el cliente inmutable de Node 0.1.14, usa una selección explícita de GraphQL cuando necesites estos campos nuevos.Programar una publicación con archivos y sin texto
Para un destino compatible,
createPosty la herramientacreate_postaceptantext: ""con imágenes válidas o un vídeo. Se rechaza el texto vacío sin medios. Siguen aplicándose los títulos obligatorios, las opciones específicas de la red y los límites de medios; un ejemplo de borrador de solo texto no demuestra este flujo. En una conexión interactiva de publicación, la tarjeta preparada también puede conservar un texto vacío con medios: revisa las cuentas seleccionadas y el contenido antes de elegir Programar o Publicar.Editar y solicitar revisión conjuntamente
Para un borrador sencillo de un canal, propiedad de la integración y sujeto a aprobación, utiliza
updatePostconapprovalChange: requestorevert. Las herramientas MCPedit_postadmite estas opciones sin texto. Proporciona la versión más reciente, una clave de solicitud estable,drafts:writeyposts:review. El contenido y los adjuntos cambian de forma atómica con la solicitud de revisión. Aprobar no publica: envía explícitamente el borrador aprobado sin cambios. Si cambia, debe revisarse otra vez.Cambiar el método de una publicación futura
Usar
updatePost(publishingMethod: automatic)oreminder, o la herramientaedit_post, para cambiar una publicación futura segura conservando su ID. Proporciona la versión actual y una clave de solicitud estable. Requiere permisos de borrador y publicación. Las publicaciones automáticas deben tener una única fecha futura; los recordatorios deben estar en cola y sin notificar. No se convierten publicaciones con intentos, revisión requerida o pertenencia a un hilo. Un recordatorio necesita un dispositivo móvil activo con sesión iniciada. La conversión vuelve a comprobar destino, plan, archivos y acceso; no confirma la entrega en la red.Registrar el origen del editor
createDraft,createPost,createThready cadacreateContentItemVariantspor entrada aceptan un valor anulablesource, una etiqueta de seguimiento declarada por el cliente de hasta 250 caracteres. Las herramientas MCP de creación correspondientes la admiten, incluidas las publicaciones para revisión. Un hilo comparte la etiqueta entre sus entradas; las variantes pueden usar etiquetas distintas. Consúltala mediantepost.provenance.composerSourceycomposerSourceBasis; las herramientasget_posty NodegetPostincluyen la procedencia. Las consultas normales de listas también la incluyen; las listas con métricas guardadas omiten la procedencia y los metadatos de vista previa animada para mantenerse dentro del mismo presupuesto de consulta. Consulta publicaciones individuales para obtener ambos. Omitir el campo o usar null al crear deja la etiqueta como desconocida. Las ediciones de borradores y publicaciones futuras también lo aceptan: omitirlo conserva la etiqueta y null la borra. Esta etiqueta no cambia el medio de creación registrado, no concede permisos ni demuestra autoría de IA.Declarar asistencia de IA
Las ediciones de borradores y publicaciones futuras aceptan un valor anulable
aiAssisted, incluidas las herramientas MCPedit_post. false se conserva, null elimina la declaración y omitirla la mantiene. Esto no cambia el transporte de creación ni detecta la autoría. Usa la última versión y la misma clave para reintentar sin cambios.Reglas de cada formato
Leer
configuration.services.contentRulesochannel.capabilities.contentRulespara cada formato de publicación automática y tipo de archivo adjunto. Las reglas incluyen el recuento de caracteres de textos y títulos, la cantidad de archivos adjuntos, los tipos de archivo permitidos y sus límites en bytes, las opciones obligatorias del canal y la compatibilidad con el primer comentario. Este catálogo describe la validación de SocialBlaze. También se aplican tu plan, los permisos actuales, las dimensiones y las comprobaciones del proveedor; no confirma la entrega. Los Reels requieren un vídeo; las Stories automáticas requieren una imagen o un vídeo.Metadatos y menciones de canales
Consulta miembros y límites nativos del plan mediante
account.organizations. Los canales incluyen IDs de destino, URLs seguras de perfil, iconos y capacidades de publicación. Pagina selecciones grandes conchannels(first, afterId); MCPlist_channelsdevuelve metadatos de paginación.Los archivos de publicaciones y biblioteca devuelven valores guardados de
mimeType,widthyheightcuando se conocen; los valores desconocidos permanecen en null. No es necesario descargar los medios para consultarlos. Las menciones estructuradas de páginas de Facebook y LinkedIn usanchannelOptions.mentionscon posiciones de inicio y longitud medidas en puntos de código Unicode y una etiqueta coincidente. Consultapost.annotationspara menciones validadas y enlaces literales. Se rechazan los rangos no válidos o superpuestos; los textos modificados deben proporcionar posiciones de mención actualizadas.Procedencia registrada y estado de cuenta
Leer
post.provenancepara registrar el medio de creación y la asistencia de IA declarada opcionalmente por quien realiza la llamada. EstableceaiAssistedexplícitamente cuando se conozca; lo desconocido permanece null. Solicitar desde un cliente de IA no demuestra que la IA redactara el texto. La declaración de vídeo del proveedor tiene su propio ajuste.account.preferencesdevuelve tus códigos guardados de calendario y visualización de hora cuando se conocen. Las consultas de canales distinguenqueuePaused,workspacePublishingPausedycredentialsExpired; pausar la publicación no significa por sí mismo que caducaran las credenciales.Recuento de texto por red
Bluesky usa etiquetas de URL visibles compactas y conserva los destinos completos en facetas indexadas por bytes UTF-8. Los textos guardados conservan las URLs originales. Mastodon aplica los metadatos de su instancia y las reglas oficiales de grafemas, URLs y menciones remotas; las advertencias cuentan literalmente. Consulta
textLimitsBasis,textLimitsMetadataAvailableycharactersReservedPerUrlen las capacidades de publicación para distinguir los metadatos actuales de la instancia de los valores de respaldo conservadores. Las consultas de metadatos son limitadas y se almacenan en caché.Fotos, vídeos y entrega de TikTok
Los textos de fotos admiten 4.000 unidades UTF-16 y un título opcional de hasta 90. Los de vídeo admiten 2.200. Establece
channelOptions.isAiGeneratedexplícitamente para la declaración del vídeo; true se rechaza en fotos. Las futuras ediciones conservan false explícito. ConsultatiktokPostingChoices(channelId)o MCPget_tiktok_posting_choicespara conocer las opciones de privacidad reales, las restricciones de interacción y la duración de vídeo del creador seleccionado. Estas consultas pueden usar una caché de hasta 60 segundos; la publicación vuelve a validarlas. Elige explícitamente la audiencia y el consentimiento. Un identificador de publicación devuelto confirma la aceptación: las publicaciones de desarrolladores siguen en procesamiento hasta que una devolución de llamada verificada del proveedor o una consulta limitada de su estado confirme la entrega del mismo intento original. La verificación del estado no envía otra publicación. La URL pública puede seguir siendo desconocida.Menciones en imágenes de Instagram
Establece
images[].userTagscon un valor públicohandlesin @ y numéricox/yposiciones de 0 a 1. Usa hasta veinte identificadores únicos por imagen. Las imágenes del feed y los elementos secundarios de carruseles admiten menciones posicionadas; los carruseles principales y las Stories automáticas no. Elimina las menciones posicionadas antes de programar una Story automática. Estos campos son exclusivos de Instagram; se rechazan los identificadores y las coordenadas no válidos o duplicados. Las plantillas de la biblioteca conservan las menciones de imagen al reutilizarse. No son etiquetas internas de contenido.Recordatorios de publicación manual
Establece
publishingMethod: reminderpara los canales seleccionados. Cada uno recibe su propio recordatorio. Activa primero las notificaciones en la aplicación móvil de SocialBlaze con la sesión iniciada. El recordatorio conserva un borrador preparado y abre su contenido cuando llega la hora; nunca publica automáticamente. Se admiten una fecha explícita, el siguiente espacio de la cola manual y la prioridad.changeReminderlo reprograma, lo cancela o registra tu propia confirmación de publicación. Para los recordatorios de Instagram,stickerFieldspueden contener música, productos, texto, temas y otras instrucciones finales, de hasta 2.000 caracteres cada una. La pantalla de recordatorio permite verlas y copiarlas. Añádelas tú en Instagram; la publicación automática rechaza campos finales con contenido. Una notificación enviada o confirmación manual no acredita entrega en la red. Una solicitud multicanal comparte archivos y guarda todo o nada. Eliminar el elemento cancela todos los recordatorios pendientes. Para revisión, añade requestApproval: true, posts:review y consentimiento explícito posts:publish. El recordatorio espera aprobación, no publica automáticamente y se cancela al retirar o invalidar la revisión.Ajustes de vídeo de YouTube
Elige
privacyymadeForKidsexplícitamente. Consultaconfiguration.youtubeCategoriespara obtener los identificadores de categoría del proveedor y establececategoryIdcuando sea necesario. Opcionalembeddable,license(youtube o creativeCommon),notifySubscribersyisAiGeneratedllegan a la subida nativa de YouTube. Se conservan los valores false explícitos. Puedes editar estos ajustes en una publicación futura medianteupdatePost.channelOptionssin sustituir su vídeo. La declaración de IA se refiere a contenido realista alterado o sintético; sigue los requisitos de divulgación de YouTube.Portadas de vídeo
Para un vídeo de Instagram, TikTok o Pinterest, establece
thumbnailOffseten las opciones del canal al desplazamiento del fotograma de portada en milisegundos. Debe estar dentro de la duración del vídeo importado. Para una publicación futura que pueda modificarse de forma segura,updatePostpuede cambiar la portada de una importación propia o sustituir vídeo y portada a la vez. Las publicaciones nativas admiten la edición si usan una importación compatible del cliente; una URL externa arbitraria no permite editar solo la portada. Omitir archivos y horario conserva los existentes. Reutiliza la clave ante respuesta incierta. Pinterest recibe el desplazamiento de fotograma en segundos enteros y admite un MP4/MOV importado de hasta 50 MB; se carga y procesa antes de crear el pin. Los reels de Instagram también aceptanshareToFeed, incluido false explícito. Otros canales y las historias de Instagram rechazan estas opciones.Las ediciones futuras requieren la versión actual y más de dos minutos hasta la publicación. No se modifican publicaciones en curso o entregadas. Editar si un reel aparece en el feed conserva vídeo y portada si se omiten. Para Pinterest, edita
channelOptions.destinationUrlpara cambiar su enlace de destino; un null explícito borra el enlace guardado. Las consultas de publicaciones devuelven ese valor en ambosdestinationUrly las opciones del canal. Estas ediciones no publican inmediatamente.Tarjetas de enlaces
Para publicaciones estándar de Facebook, LinkedIn, Bluesky o Threads sin otros adjuntos, proporciona
linkUrlen las opciones del canal. LinkedIn y Bluesky también aceptanlinkTitleylinkDescription. Facebook y Threads usan la vista previa del sitio de destino. LinkedIn y Bluesky también aceptanlinkThumbnailUrlcon la URL del enlace: un JPEG, PNG o WebP público directo de hasta 1.000.000 bytes, con ocho vistas previas distintas por solicitud. Se importa de forma protegida y se sube al proveedor; si la subida falla, se detiene antes de publicar. Guarda una vista previa nueva en el borrador antes de enviarlo. Null borra una vista previa guardada. Los enlaces HTTPS no pueden contener credenciales. No se extrae contenido de páginas en el servidor. Edita las tarjetas futuras conupdatePost.channelOptions; un valor null explícitolinkUrlelimina la tarjeta y su título y descripción. Eliminarla y sustituir archivos es atómico. Las opciones de borrador combinan los campos cambiados explícitamente; una lista vacía restablece todas las opciones.Ubicaciones y temas de Threads
Las publicaciones del feed y reels de Instagram y las de Threads aceptan un identificador numérico del proveedor
locationIdy opcionalmentelocationName. Los elementos secundarios de un carrusel de Instagram no reciben la etiqueta. Las historias automáticas rechazan esta opción. Threads también acepta untopichasta 50 unidades UTF-16, sin ampersand ni punto. Las opciones omitidas se conservan en futuras ediciones; null las borra.Advertencias de contenido y declaración de IA
Mastodon acepta
spoilerText; la advertencia cuenta literalmente y comparte el límite de caracteres de la instancia con el texto preparado. Las reglas de URLs y menciones remotas se aplican al texto, no a la advertencia. Usa null para eliminarla. Los vídeos de Instagram, YouTube y TikTok aceptanisAiGenerated. Instagram lo envía solo en el contenedor principal. Las opciones de red incompatibles se rechazan antes de guardar publicaciones.Primeros comentarios
Los primeros comentarios tienen límites UTF-16 separados: Facebook 5.000, Instagram 2.200, LinkedIn 1.250 y Threads 500. Consulta
maxFirstCommentLengthyfirstCommentLengthUnitde la capacidad del canal. Los emojis pueden contar como dos unidades. Los destinos no compatibles y las Stories rechazan los comentarios; el texto nunca se recorta sin aviso. Siguen aplicándose los permisos del plan actual.Límites de texto
La mayoría de los textos de desarrollador se cuentan en unidades UTF-16, donde muchos emojis valen dos. Las URLs HTTP(S) de LinkedIn cuentan como 24; los saltos lógicos de Instagram, como dos. Facebook admite 5.000 y Instagram 2.196; los títulos de Pinterest y YouTube, 100. Google Business conserva 1.500. Mastodon usa metadatos limitados de instancia y un valor conservador de respaldo; consulta capacidades para conocer la base. Bluesky cuenta grafemas tras compactar las etiquetas visibles, conservando destinos completos. Los textos originales no cambian. Consulta las capacidades del canal para el límite y unidad actuales.
Publicaciones de Google Business
Usar
channelOptions.businessPostpara actualizaciones normales, eventos y ofertas. Los eventos y las ofertas necesitan un título y fechas locales de inicio y fin. Las horas opcionales emparejadas usanHH:mm; omitir ambos cubre el día local completo. La programación UTC es independiente. Las actualizaciones y eventos admiten botones; las ofertas usan cupón, enlace de canje y condiciones. Las llamadas usan el teléfono del negocio sin URL. Los demás botones requieren HTTPS. Estas opciones necesitan publicación automática, mantienen límites de texto e imagen y no confirman entrega.Audio de Instagram
Busca música con licencia y sonidos originales mediante las consultas del catálogo. Se requiere Facebook Login. Para un reel de un vídeo, proporciona ID de audio y volúmenes opcionales en las opciones del canal. Las vistas previas caducan y los errores de permisos o resultados parciales son explícitos. Las opciones guardadas sobreviven al envío posterior.
Hilos ordenados
Bluesky, Mastodon y Threads admiten entre 2 y 25 entradas. Las respuestas esperan a que se confirme la entrega del mensaje anterior. Reprogramar o cancelar la raíz mantiene agrupadas sus respuestas futuras seguras. Bluesky y Threads aceptan linkUrl; Bluesky también linkTitle, linkDescription y linkThumbnailUrl protegido. Las tarjetas no se combinan con otros archivos; Threads usa la vista del sitio. Mastodon rechaza tarjetas. Los hilos admiten ocho adjuntos y un máximo de 100 publicaciones de destino.
Editar adjuntos de un hilo futuro
Usar
updateContentItem.threadEntrieso la herramienta denominadaedit_content_itempara sustituir o borrar archivos adjuntos y opciones de enlace del hilo completo existente. Proporciona todas las entradas en orden, su texto, la versión actual del grupo y una clave de solicitud estable. Los archivos omitidos no cambian;images: []oclearMedia: truelos elimina. Los archivos compartidos se importan una vez por entrada para todos los canales. Todos los destinos deben estar sin intentos de publicación, sin publicar y a más de dos minutos en el futuro. La edición completa se guarda de forma atómica. Conserva la misma cantidad de entradas y edita la programación por separado; no se admiten cambios de cantidad ni ediciones combinadas de medios y programación.Filtros de grupos de contenido
Filtrar
contentItemspordraftContentopostContent, y ordenar por createdAt y updatedAt. La búsqueda se limita por defecto a tu integración. El valor explícitodiscovery: workspacerequiere una autorización independientecontent:readmásposts:read; las credenciales existentes no lo obtienen automáticamente. También lee grupos visibles según tus permisos nativos y canales seleccionados. Se excluyen grupos con destinos inaccesibles, incluidos texto y archivos compartidos. CompruebamanagedByCurrentIntegration; los cambios de grupo entre integraciones siguen bloqueados, mientras los cambios individuales conservan sus comprobaciones. Los cursores vinculan búsqueda, filtros, orden y acceso; reinicia la paginación si cambian. SDK0.1.14 proporcionacontentItems(options)ycontentItem(id, options)funciones auxiliares de lectura.Revisión del equipo
Usar
posts:reviewyrequestApproval: truepara crear publicaciones con la publicación suspendida.requestPostApprovalenvía una publicación existente sin publicar a revisión.withdrawPostApprovallo devuelve a borrador solo cuando tus permisos nativos de aprobación lo permiten. El permiso de revisión nunca concede publicación automática.Adapta cada destino.
Usar
createContentItemVariantscuando cada canal necesita un texto, título, archivo, opción nativa o programación diferente. Proporciona identificadores distintos de los canales seleccionados enposts. El grupo admite hasta 25 destinos y ocho adjuntos en total, dentro de los límites existentes. Los archivos idénticos comparten una importación protegida.Validar y guardar es atómico: si falla una variante, no se guarda una campaña parcial. Cada entrada usa por defecto la cola o su fecha indicada. Utiliza
mode: publishNowsolo para un envío inmediato intencional. EstablecerequestApproval: truepara una revisión del equipo con la publicación suspendida. La aceptación sigue sin confirmar la entrega.Leer
contentItem.hasChannelVariantsy la versión del grupo; después lee los IDs individuales para detalles completos. Edita individualmente para conservar textos distintos. Una edición de grupo aplica deliberadamente el mismo cambio a todos los destinos futuros seguros. Las versiones individuales y de grupo son distintas.Convertir un borrador existente
Lee un borrador sin canal, propiedad de la integración y sin enviar, y su versión de grupo. Llama a
promoteContentItemDraftcon un valor no vacíopostslista para convertir el mismo elemento de contenido en publicaciones distintas por canal. Cada entrada proporciona su propio identificador de canal, texto explícito y, opcionalmente, medios, opciones nativas y programación. El texto y los archivos originales permanecen guardados; si una entrada omite los medios, no los hereda.Utiliza por canal
postso el recurso compartido existentechannelIdsformato. No los combines ni mezcles las opciones de cada entrada con las opciones generales de programación. Si falla un destino, no se guarda una promoción parcial. Reutiliza la misma clave de solicitud al reintentar sin cambios; un borrador enviado no puede promocionarse de nuevo con una clave nueva. Solicitar una revisión requieredrafts:writeyposts:review; el envío automático requiereposts:publish. Se mantienen las reglas nativas de aprobación del equipo. Las entradas utilizanContentVariantInput. Cada entrada acepta un valor anulableaiAssisted: false se mantiene, null u omisión dejan desconocida la asistencia, y el texto modificado no hereda la declaración del borrador original. Cada destino puede seguir como borrador, publicarse automáticamente o usar recordatorio. ConservacontentItemIdpara limpiar el grupo completo.Acortamiento automático de URLs por flujo
El acortamiento se ejecuta antes del guardado final mediante los conectores del autor. Los ajustes no se desactivan silenciosamente. La compatibilidad depende del flujo, adjuntos y opciones de canal; las combinaciones incompatibles devuelven un error que indica cómo actuar.
El perfil básico de texto cubre Facebook, Bluesky, LinkedIn, Threads, Tumblr, Google Business Profile, Mastodon y WordPress. Las imágenes incluyen Instagram y Pinterest; los vídeos, YouTube, TikTok y otros servicios validados. La promoción programada uniforme y las transiciones existentes tienen catálogos separados; los grupos mixtos no admiten opciones arbitrarias. Se requieren privacidad, consentimiento y validación nativa actuales. Guardar no activa y revisar no autoriza publicar. Consulta
allowedActionsy versiones actuales; retira la revisión pendiente antes de borrar cuando esa acción esté disponible. Aceptar la preparación y acortar no confirma entrega.Guarda un destino antes de programarlo
Establece
saveToDraft: trueen una entrada para guardar un borrador asociado a un canal. Requieredrafts:write, sin permiso de publicación ni un nuevo inicio de sesión para publicar. Guardar no crea programación ni recordatorio. Los valores de modo y fecha guardados no programan ni se reutilizan como instrucciones; elige modo y fecha nuevos al programar explícitamente. No se acepta null ensaveToDraft.Lee el ID del destino y su última versión y utiliza
armDestinationDrafto la herramienta denominadaarm_destination_draftpara programar esa misma publicación. La herramienta nombrada llama al identificadorpostId. EligepublishNow,schedulecondueAt,addToQueueoprioritize. Si omites el modo, una fecha proporcionada selecciona programación; en otro caso se usa la cola. La publicación automática comprueba permisos, acceso, archivos, aprobaciones y estado de sesión.Devolver un destino futuro a borrador
Para un destino automático gestionado por el propietario cuya publicación no haya empezado,
updatePost(saveToDraft: true)puede conservar ID de destino, grupo y adjuntos desactivando una única programación futura. Proporciona versión actual y clave estable, con permisos de publicación y borrador. Deben faltar más de dos minutos. Devuélvelo primero y edita después el borrador; revisión, recordatorio, hilo e intentos conservan sus flujos específicos. Actívalo explícitamente cuando esté listo.Revisar un borrador guardado
En un canal sujeto a aprobación, combina
saveToDraft: trueconrequestApproval: true. Requiere permisos de borrador y revisión. Aprobar no activa la publicación: programa explícitamente la versión aprobada sin cambios. Editarla exige una nueva aprobación. En cambio, solicitar revisión al programar explícitamente una publicación automática suspende esa programación hasta aprobarla.Mantén explícita la publicación manual
Establece para una entrada su
publishingMethod: remindercuando alguien vaya a terminar la publicación desde su teléfono. Un borrador guardado conserva esa opción sin necesitar un dispositivo. Al programarlo después, omitir el método de publicación conserva la opción guardada; un método explícito vuelve a seleccionar ese método. No se acepta null. Programar un recordatorio requiere permisos de borrador y publicación, un dispositivo activo con sesión iniciada y notificaciones, y cualquier aprobación necesaria.publishNowpone en cola un recordatorio que vence ahora; no publica automáticamente en la red.Leer
isDraft,publishingMethodymanualReminder.statejuntos. Una entrada guardada pendiente de revisión sigue siendo un borrador, y una opción guardada de recordatorio todavía no tiene un recordatorio activo.providerDeliveryConfirmed: falseno demuestra la entrega a la red. Los grupos mixtos pueden contener entradas guardadas, programadas y de recordatorio; las acciones de cada publicación siguen siendo independientes. Usaedit_postcondraft: truepara editar un destino guardado seguro y el valor canónicodeleteContentItemodelete_content_itempara limpiar el grupo completo. Retira primero la revisión pendiente. Si la publicación ya está tomada para procesamiento o tiene un resultado incierto, se debe conciliar su estado en lugar de eliminarla a ciegas.Herramientas específicas para clientes de IA
get_publishing_configurationyget_channelmuestran requisitos reales de archivos y consentimiento. Utilizalist_content_items,get_content_item,create_content_item_draft,promote_content_item_draftycreate_content_item_variantssin escribir GraphQL. Las herramientas de edición, eliminación y asociación conservan las mismas comprobaciones de alcance, versión y reintento.Reutiliza tu contenido guardado.
Consulta, crea y edita plantillas de tu biblioteca real de SocialBlaze. Reutiliza texto, imágenes, vídeos y PDF en borradores. Editar requiere la versión actual. Eliminar una plantilla conserva los archivos compartidos.
Usar
createDraftFromLibraryItemcon su identificador, versión, clave de solicitud y canales seleccionados. El acceso a la biblioteca respeta tu plan y los permisos actuales del equipo.Las plantillas aceptan descripción opcional de hasta 1.000 caracteres, emoji de hasta 32 y visibilidad:
internalpara tu espacio de trabajo oprivatepara su creador. Las plantillas existentes y aquellas cuya visibilidad se omite siguen siendo internas. Solo el creador puede convertir una plantilla compartida en privada; las plantillas privadas se ocultan a otros miembros en la API, la biblioteca nativa y las consultas móviles. FiltralibraryItems(visibility: private)ointernal. No existe un catálogo público de plantillas seleccionadas. null elimina descripción o emoji; omitir campos los conserva. Las ediciones nativas mantienen estas opciones.Crea el informe que necesitas.
La recopilación explícita de TikTok enumera solo vídeos públicos.
enumerationCompletedescribe el recorrido de esa fuente;completepermanece en false porque se excluyen las fotos y los vídeos privados. Consultabasisynoteen los informes, las referencias agregadas y la cobertura de clasificaciones antes de interpretar los totales o los resultados vacíos.Los informes normales, métricas individuales, clasificaciones y agregados usan datos existentes del sitio e instantáneas guardadas. Leer no contacta con proveedores ni solicita o actualiza recopilaciones. Las métricas varían por red; lo no disponible sigue desconocido, nunca cero.
Leer
readMode,storedAnalyticsy los intervalos guardados disponibles cuando no hay informe normalizado. Las secciones conservan etiquetas y bases originales. Una fecha de actualización de fila no demuestra que todas sus métricas se recopilaran entonces. Los datos ausentes siguen no disponibles; caducar un token de publicación no impide por sí solo una lectura histórica autorizada. Las fechas se limitan al historial disponible. Revisacomplete, de cada métrica, sustatusy subasisantes de interpretar totales. Cada informe y agregado identifica su red. El agregadometricsUpdatedAtes la marca temporal conocida más reciente que contribuye al resultado;oldestMetricsUpdatedAtindica el instante más antiguo que contribuye al resultado y permanece en null cuando una fuente lista tiene una antigüedad desconocida.Las estadísticas opcionales de vídeo de LinkedIn incluyen por publicación valores únicos de
viewersytotalTimeWatcheden minutos. Los espectadores únicos nunca se suman entre publicaciones. Instagramfollowses un recuento atribuido a las publicaciones del feed y las Stories aptas, no a los Reels ni al crecimiento neto de seguidores. Estos valores dependen del acceso al proveedor y de la disponibilidad; los valores no disponibles permanecen en null. No se infiere ninguna unidad de tiempo de visualización de Instagram.El recorrido de informes de LinkedIn está limitado. Si se alcanza el máximo de páginas o no se puede avanzar con seguridad, pueden devolverse filas observadas con cobertura parcial. Los totales describen solo ese subconjunto, no todas las publicaciones. Lee notas y estado antes de comparar canales.
Las filas de rendimiento pueden mostrar
publicationDateypublicationTimeBasispor separado depublishedAt. Un día histórico del calendario nativo con zona horaria desconocida conservapublishedAt: null; no inventes una hora de publicación a medianoche UTC. Mantén separadas las publicaciones de cada red aunque enlacen al mismo artículo.Leer secciones de analítica guardadas del sitio
Usar
storedChannelAnalyticso la herramienta MCP denominadaget_stored_channel_analyticsconanalytics:read, un canal autorizado y fechas exactas de inicio y fin. Cada sección identifica fuente, disponibilidad y base de fechas.availableRangesenumera los rangos guardados; no sustituye las fechas solicitadas por uno de ellos. Una sección de datos sin procesar no disponible o demasiado grande no demuestra que no existan publicaciones; comprueba su código de error y la consulta paginadachannelReportproyección.Para TikTok, Pinterest, Tumblr y WordPress, el
reportsección puede mostrar una recopilación explícita ya guardada, etiquetada comosaved_developer_report. Son datos de un informe guardado, no prueba de que los recopilara un recolector del sitio nativo. Sin informe coincidente, no están disponibles; la lectura no crea uno. Un informe puede estar listo mientrascompleteoenumerationCompletees false. Conserva la cobertura parcial y las métricas no disponibles al informar de los resultados.Al paginar informes normalizados, conserva juntos ID, canal y fechas y pasa
posts.pageInfo.endCursorcomo el siguienteafter. Al cambiar de instantánea, empieza sin cursor. Una métrica guardada de publicación y un informe incompleto de canal pueden tener coberturas distintas; muestra el estado y la base de cada uno.Recopila datos nuevos del proveedor solo cuando se solicite
Utiliza explícitamente
refreshChannelReportmodificación o la herramienta MCP denominadarefresh_channel_reportsolo después de que el usuario solicite recopilar nuevos datos del proveedor. La recopilación puede requerir permisos actuales de análisis del proveedor y consume el presupuesto independiente de actualización. Puede devolver un estado en cola; consulta el mismo identificador de informe y las mismas fechas devueltos conchannelReport. Las lecturas normales nunca inician sesión, reconectan cuentas ni arrancan automáticamente esta operación.Incluir métricas guardadas al leer publicaciones
Establece
includeMetrics: trueenpostoposts, o la herramienta MCPget_postylist_posts. ProporcionametricSnapshotscon un identificador de canal, un identificador de informe y fechas coincidentes de inicio y fin para cada canal. Ambosposts:readyanalytics:readson obligatorios. Solo lee instantáneas existentes, sin contactar con redes ni iniciar recopilaciones. ConsultametricsState,metricsErrorCode, el estado y la base de cada métrica ymetricsUpdatedAt. Las métricas ausentes permanecen en null. El historial guardado puede estar desactualizado: conserva sus indicadores de antigüedad en lugar de considerarlo recién recopilado. Omite la opción en lecturas normales; se aplican los límites habituales de selección y complejidad.Para las herramientas MCP
list_postsconincludeMetrics: true, la selección predeterminada completa y una instantánea fijada, omitiendofirstdevuelve actualmente hasta 18 filas con el límite estándar de 1.000 puntos. Más instantáneas pueden reducir ese valor. Un valor explícitofirstnunca se reduce sin aviso: 19 filas completas con una instantánea superan ese límite. Las listas normales de publicaciones siguen usando 20 de forma predeterminada; seleccionar menos campos puede permitir páginas mayores. SiguepageInfo.endCursoren lugar de suponer que una respuesta contiene todas las publicaciones. Este ajuste automático de página corresponde a la herramienta nombrada; una consulta explícita de GraphQL debe elegir un tamaño de página compatible con su selección.Contar registros locales de publicación
publishingActivitycuenta registros automáticos conservados según creación original y zona horaria elegida. Cada destino y entrada de hilo cuenta por separado. Incluye borrado lógico, excluye borradores y recordatorios y no recupera registros purgados ni historial exclusivo del proveedor. Los borradores nativos pueden conservar fechas anteriores tras enviarse. No son fechas históricas exactas de envío o publicación;currentlyDelivereddescribe el estado actual de estos registros. Conserva visibles la base y la nota.recordedCommitEventscuenta por separado los intentos nativos conservados según la fecha registrada de confirmación del proveedor, independientemente de las fechas originales de creación. Una republicación intencional vuelve a contar. La aceptación puede preceder al procesamiento o la entrega, por lo que estos totales no son totales de entrega. ConservacommitEventBasis,commitEventCountUnit,commitEventNotey el valor false decommitEventHistoryCompleteindicador visible.Contar horas de publicación registradas conocidas
publishedActivitycuenta destinos conservados actualmente entregados cuya hora nativa válida cae en el intervalo y zona solicitados. Usa las mismas reglas temporales que el valor anulablepost.publishedAt; las fechas de creación, edición, programación y confirmación no las sustituyen. Cada destino o entrada de hilo cuenta por separado, incluidos los registros con borrado lógico agregado. ConservarangeStartUtc,rangeEndUtcExclusive,basis,countUnitycomplete: false.unknownTimeExcludedcuenta todos los registros entregados conservados con hora desconocida, no publicaciones desconocidas asignadas a este mes. El historial purgado, sobrescrito o solo del proveedor queda fuera del subconjunto con hora conocida.Utiliza las herramientas MCP
get_published_activity, NodepublishedActivityo la CLItools call get_published_activity. Lee registros locales sin recopilar datos del proveedor. La cohorte de creación originalpublishingActivityy el valor basado en confirmacionesrecordedCommitEventsconservan sus significados independientes.Clasificar el rendimiento observado
rankedPostsrequiere una métrica explícita y una de estas opcioneslifetimeoperiod_totalcomo base. Se excluyen valores desconocidos y bases incompatibles; cero sigue siendo una puntuación real. La cobertura distingue fuentes completas, parciales, en cola y no disponibles. Reutiliza IDs para comparaciones estables. Cada resultado identifica su unidad; las tasas usan porcentajes y conservan su base. No se mezclan fórmulas distintas ni se suman tasas. El alcance único de LinkedIn no se suma entre publicaciones. En Facebook, los me gusta se separan de las reacciones totales si el proveedor los devuelve; lo ausente permanece null. El rendimiento no demuestra causalidad del texto.Las herramientas MCP específicas son
get_publishing_activityyrank_posts. Los métodos del SDK sonpublishingActivityyrankPosts.Conecta con OAuth.
Registra en la consola un cliente público PKCE o una aplicación confidencial de servidor. Indica URLs exactas de retorno, ámbitos y URL de privacidad. Cada cliente elige sus canales y puede desconectar la aplicación.
/api/developer/oauth/authorizecon identificador de cliente, URI de redirección registrada, alcances, estado, desafío,code_challenge_method=S256y el recurso solicitado./api/developer/oauth/token, incluidos el verificador original y el recurso. Los clientes confidenciales también se autentican con su secreto.Los recursos son
Metadatos de descubrimiento OAuthhttps://backend.socialblaze.ai/api/developero su/graphqlo/mcpendpoint. Los tokens de conectores de IA existentes usan una audiencia separada.Tu cuenta, al alcance.
Utiliza una conexión MCP remota personalizada en un cliente compatible. El endpoint es
https://backend.socialblaze.ai/api/developer/mcp. Usa OAuth si el cliente lo admite; ese flujo no necesita clave de desarrollador. Usa una clave limitada solo en clientes con autenticación Bearer segura.La sintaxis depende del cliente. Las herramientas se filtran según los ámbitos concedidos y abarcan cuentas, canales, borradores, publicación, hilos, revisión, plantillas e informes. Los recursos de esquema y GraphQL genérico comparten permisos y cuotas. Aparecer aquí no implica estar publicado en un catálogo de conectores.
Estos ejemplos usan el endpoint MCP de desarrollador y sus herramientas limitadas actuales. Una conexión interactiva puede mostrar herramientas y cuentas diferentes. Si falta una herramienta, comprueba conexión y permisos; poder publicar no implica acceso a informes.
Estructuras genéricas de solicitudes y resultados MCP
Para un cliente MCP inicializado, pasa el valor mostrado
{name, arguments}objeto comotools/callparámetros.execute_queryrequiere una declaración verazsummary(máximo 500 caracteres) yquery;execute_mutationrequieresummaryymutation. Las variables y el nombre de operación son opcionales. La consulta de cuenta requiereaccounts:read; crear un borrador requieredrafts:write.Los resultados MCP pueden establecer
isErrory muestranstructuredContent.erroro detalles de validación; una respuesta de GraphQL también puede contenererrorso un objeto tipadoMutationError. JSON-RPC sin procesar incluye el resultado de la herramienta bajoresulty puede tener en el nivel superiorerror. Revisa también el contenido devuelto: HTTP 200 no basta para confirmar éxito.Edita un borrador y vuelve a leerlo
Lee primero el ID y la versión actuales del borrador. Sustituye los marcadores por valores reales de
get_postvalores; no envíes los marcadores sin cambiarlos. La edición de un borrador propio usaedit_postcondraft: true, texto explícito, una clave de solicitud estable ydrafts:write. OmitesaveToDraft,modeydueAtpara esta edición del borrador. DevuelvepostIdyversion. El editor de publicaciones futuras devuelve en cambioid,versionydeleted. Selecciona solo los campos de esa operación; recupera texto y archivos por separado medianteget_postconposts:read.Sustituir archivos de un borrador guardado
Para un borrador de la integración aún no enviado ni programado, omite
drafty establecesaveToDraft: true. Proporciona ID y versión actuales, una clave estable,drafts:writey archivos de sustitución; omitemodeydueAt. No combinesdraft: trueconsaveToDraft: true. Esta ruta del editor devuelveid,versionydeleted, nopostId. El ejemplo de PDF de LinkedIn sustituye los adjuntos por un documento. Reemplaza todos los marcadores, incluidas URL y título, y conserva el texto deseado. Vuelve a leer la publicación para comprobar archivos y estado de borrador. Esta edición no envía, programa ni publica.n8n
Añade un paso MCP Client, elige HTTP Streamable y utiliza
Documentación del cliente MCP de n8nhttps://backend.socialblaze.ai/api/developer/mcp. Selecciona Bearer Auth y guarda la clave limitada en una credencial de n8n. Elige una herramienta y utiliza JSON para los parámetros anidados. Empieza conget_accounto una modificación de borrador; conserva la misma clave de solicitud al reintentar un evento.Zapier
En las conexiones de tu aplicación, añade MCP Client by Zapier. Introduce el endpoint, elige Streamable HTTP y OAuth. Inicia sesión, revisa permisos y selecciona canales. Usa lectura para informes o Run Tool para borradores autorizados. Activa la gestión de errores y revisa los datos estructurados antes del siguiente paso.
Algunos editores MCP Client de Zapier envían arrays de texto como cadenas.
Configuración de MCP Client de ZapierchannelIdsrequiere un array real. Si el editor lo aplana, usaexecute_mutationcon una cadena de modificación de GraphQL que contenga el literalchannelIds: ["YOUR_CHANNEL_ID"]. Empieza con una fecha futura, conserva la clave y revisa los errores antes de continuar.Utilizan clientes MCP genéricos. La disponibilidad de cuentas y los cargos del proveedor son independientes de los límites de SocialBlaze.
Publicar automáticamente requiere un permiso explícito. Usa ámbitos de revisión si quieres que un asistente prepare contenido sin publicarlo.
Límites con los que puedes planificar.
Las ventanas UTC se comparten entre claves y aplicaciones; crear más claves no multiplica los límites. Solo se cobran la operación seleccionada y los fragmentos alcanzables: una unidad por cada 25 puntos de complejidad, redondeada hacia arriba, mínimo una, más dos por mutaciones. Cabeceras y metadatos MCP indican unidades y base del coste. Es una política inicial conservadora; actualizaciones de proveedores y archivos tienen presupuestos separados. Las lecturas en caché también consumen trabajo local. La publicación web y los límites de proveedores son independientes.
channels.ID.Retry-After; reutiliza la misma clave de mutación.GraphQL puede devolver errores con HTTP 200. Revisa siempre
errors. Cada mutación también tiene untryvariante, comotryCreateDraft, con un resultado correcto tipadoresultoMutationError. Selecciona__typenamey del error, sucode,httpStatus,message,fieldsyretryAfterSeconds. Puede aparecer un error tipado endatacon HTTP 200, por lo que también debes comprobar ese resultado.Los clientes MCP también deben revisar
isErrorystructuredContent: pueden aparecer errores como GraphQLerrors, un valor tipadoMutationError,errorovalidationdetalles incluso cuando el transporte tiene éxito. Cuando esté disponible,_metaincluyehttpStatus,chargedWorkUnits, los límites restantes yretryAfterSeconds. Que un cliente oculte metadatos no demuestra que la llamada fuera gratuita. Resuelve los errores de permisos o validación antes de reintentar. Si una escritura es incierta, conserva clave y entrada originales y consulta el estado guardado en lugar de crear otra publicación.Son límites preliminares, no una garantía de que los proveedores permitan el mismo volumen.
Empieza con un flujo pequeño.
Bot de informes del viernes
Programa una ejecución semanal, lee publicaciones entregadas e instantáneas existentes y envía el informe mediante tu propia conexión de Slack.
De formulario a borrador
Utiliza un webhook de Zapier o un nodo HTTP Request de n8n para llamar a
createDraft. Guarda la credencial en el almacén de secretos de la plataforma y utiliza un ID de evento estable como requestKey.De la biblioteca a la campaña
Selecciona una plantilla, crea el borrador y envíalo a revisión. Programa solo después de cumplir las aprobaciones.
Informes personalizados
Lleva métricas de los canales seleccionados a tu panel. Reutiliza IDs de instantáneas al consultar y conserva valores desconocidos o incompletos.
Importar un flujo de n8n
Descarga un flujo, elige Import from File en n8n, edita las entradas y añade tu credencial Bearer Auth al paso MCP Client. Todos empiezan con un activador manual y permanecen inactivos tras importar. Las claves van en credenciales, nunca en JSON.
Importado con n8n 2.43.5; llamadas MCP verificadas con un entorno API aislado. La ejecución alojada con tus credenciales se comprueba aparte. Son clientes MCP genéricos, no aplicaciones de catálogo ni plantillas publicadas de Zapier. Conserva la autorización de mensajes externos en tu flujo.
Lee el esquema actual.
La referencia se genera a partir de los tipos GraphQL implementados. La introspección autenticada y el explorador muestran el contrato desplegado. SocialBlaze utiliza identificadores y esquema propios.
Descargar esquema GraphQLProporciona a tu asistente de programación la Guía de API legible por IA para que pueda usar los endpoints, permisos, versiones y reglas de reintento correctos.
Cliente Node de servidor
El paquete versionado incluye declaraciones TypeScript y cliente de línea de comandos. Instala el archivo descargado con
npm install ./socialblaze-developer-client-0.1.14.tgz. Guarda la clave en una variable de entorno del servidor.Utiliza comandos específicos de publicaciones y borradores,
tools list,tools describe NAME,tools call NAME,schema describe TYPEydoctor. Proporciona JSON directamente, desde un archivo o desde stdin.--dry-runcomprueba las reglas básicas anunciadas sin llamar a la herramienta; descubrir herramientas consume cuota y no valida al proveedor ni la entrega. La CLI nunca reintenta escrituras automáticamente.Las lecturas de publicaciones admiten
postTypesydueAtPresencefiltros de formatos nativos guardados y presencia de fecha. Reinicia el cursor si cambian. Estos filtros no habilitan nuevos formatos de publicación.La herramienta
list_channelsadmite páginas de 1 a 100 elementos, con 20 de forma predeterminada, medianteafterId. Selecciona menos campos para páginas mayores; se aplican los límites habituales de complejidad y trabajo. Los filtros también incluyen Google Businessevent,offerywhats_new, según los metadatos nativos guardados. Estas categorías se solapan deliberadamente con las publicaciones ordinarias y no habilitan nuevos formatos.Node
getPostycontentItemdevuelven las URL de los archivos, incluidas las vistas previas estáticas y animadas. NodelistPostsconserva su proyección compacta sin archivos; usa una consulta individual o una selección explícita de GraphQL. NodegetPostincluyeisDraftpero conserva una proyección compacta sin estado de método de publicación ni recordatorio. Utiliza la herramientaget_posto una consulta explícita de GraphQL para esos campos; el cliente genérico y la CLI pueden ejecutar las nuevas operaciones de borradores sin cambiar el paquete inmutable del SDK.Seleccionar campos de respuesta
Las llamadas específicas de CLI aceptan
--fields 'id,text'y grupos relacionados como--fields 'nodes.{id,text},pageInfo.endCursor'. Las rutas son relativas al resultado indicado. El servidor construye una selección GraphQL menor y la valida antes de ejecutarla. Los cargos reflejan esa selección. Conserva IDs y versiones al seguir escrituras, y base, notas y cobertura de los informes.allrestaura la selección estándar de la herramienta, no todos los campos del esquema. Las herramientas MCP nombradas aceptan el mismofieldscadena. Los metadatos de paginación de canales siguen disponibles cuando los campos mostrados omiten los identificadores. Los comandos genéricos de consulta usan su documento explícito.Configuración de CLI y guía para agentes
socialblaze initguarda los valores predeterminados locales;config pathyconfig get --allpermite revisarlos. Se recomiendan credenciales de entorno. Solo una opción explícitainit --save-tokenguarda un token en un archivo global sin cifrar fuera del proyecto actual. La configuración del repositorio solo admite zona horaria y tiempo de espera, y no puede aportar credenciales ni redirigir su origen. La salida de configuración oculta las claves guardadas; eliminarlas localmente no revoca la clave del servidor.context --listenumera los temas del agente incluidos;contextimprime sin conexión la habilidad y las instrucciones de informes.completion bash,zsh,fishopowershellimprime un script de autocompletado para la consola. Usasocialblaze install claudeoinstall codexpara instalar explícitamente una habilidad administrada sin conexión;uninstall claudeouninstall codexrevierte una instalación sin modificaciones. Se conservan las carpetas personalizadas o enlazadas. La instalación del paquete y la inicialización no instalan habilidades ni cambian los perfiles de la consola. Las sugerencias cubren grupos de comandos estáticos. La versión 0.1.5 corrige el autocompletado anidado de zsh. Las sugerencias estáticas se comprueban en entornos reales sin conexión de bash, zsh ZLE y fish; la salida de PowerShell se comprueba con su analizador. Estas pruebas no ejecutan herramientas remotas ni autorizan publicaciones.Leer la habilidad de agente incluida. Conserva la autorización y distingue recuentos locales, clasificación observada e historial incompleto del proveedor. Consulta la referencia de informes enlazada.
Descargar cliente Node 0.1.14¿Necesitas ayuda con una solicitud? Escribe a [email protected] con el nombre de la operación, el estado y un código de error seguro. Nunca incluyas tu clave, token de actualización ni credenciales de redes sociales.