Saltar al contenido

Relê a planilha e mostra o resumo e as primeiras linhas

POST/api/import/spreadsheet/{id}/preview

Auth
Requiere token
Quién puede:
SuperAdmin
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

Owner e admin. Não grava nem baixa nada. Sem `mapping`, refaz a análise (outra aba, `headerRow`, `delimiter` ou `encoding`). Com `mapping` (e `options`), devolve também `summary` e `rows`: - `summary`: `totalRows`, `toImport`, `byType` (`post`, `article`, `short`), `backdated` (data mais de 5 min no passado: entram em silêncio, sem pontos nem e-mail de novidades), `withoutDate` (publicados com a data da importação), `skipped` e `skippedByReason` (`NO_TITLE`, `NO_BODY`, `NO_SPACE`, `INVALID_DATE`, `FUTURE_DATE`, `BODY_TOO_LONG`, `DUPLICATE_IN_FILE`, `AUTHOR_NOT_MEMBER`: e-mail de quem não é desta comunidade, `AUTHOR_ROLE_PROTECTED`: e-mail de alguém com papel igual ou acima do de quem importa; o SuperAdmin importa em nome de qualquer um), `withWarnings`, `warningsByCode` (`TYPE_UNKNOWN`, `TITLE_TRUNCATED`, `SPACE_NOT_FOUND`, `SPACE_WRONG_MODULE`, `NO_DATE`, `AUTHOR_NOT_FOUND` só com `unknownAuthor: importer`, `TAGS_IGNORED`), `imagesToFetch`, `bodyBytes` e `caps` (limites da importação), `dateOrder` e `timeZone` (fuso em que datas sem fuso são lidas). Quem pede a prévia é tratado como quem vai importar (regras de autor). - `rows`: as 10 primeiras linhas como serão gravadas (`type`, `title`, `bodyPreview`, `space`, `author` com `isImporter`, `publishedAt`, `backdated`, `tags`, `images`, `warnings`) ou puladas (`skipped: true`, `reason`). Só enquanto a importação está `ANALYZED`.

Parámetros

NombreDóndeTipoDescripción
idobligatoriopathstring (uuid)

Headers

NombreTipoDescripción
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Cuerpo de la solicitud application/json

NombreTipoDescripción
sheetopcionalstring
headerRowopcionalinteger≥ 1, ≤ 30
delimiteropcional, | ; | | |
encodingopcionalutf-8 | windows-1252 | iso-8859-1 | utf-16le | utf-16be
mappingopcionalobject[]
mapping[].columnobligatoriointegerO `index` da coluna, como veio na análise.
mapping[].targetobligatorioignore | title | body | authorEmail | publishedAt | space | type | tags`title` (obrigatório em post e artigo), `body` (Markdown ou HTML; imagens são baixadas e hospedadas na Memberfy), `authorEmail` (pessoa da comunidade; sem correspondência, quem importa), `publishedAt` (data de publicação no fuso da comunidade), `space` (id, slug ou nome), `type` (post, artigo ou curto), `tags` (separadas por vírgula, ponto e vírgula ou barra vertical). Cada destino em uma coluna só.
optionsopcionalobject
options.spaceIdopcionalstring (uuid)Space padrão (módulo `content` ou `feed`). Obrigatório sem coluna `space`; vale também quando o space da linha não existe ou não aceita o tipo.
options.typeopcionalpost | article | shortTipo das linhas sem coluna `type` (padrão `post`). `post` e `artigo` viram post com título; `short` vira post curto (até 500 caracteres, só em space de feed).
options.visibilityopcionalpublic | membersPadrão `members`.
options.unknownAuthoropcionalskip | importerLinha com e-mail de quem não é da comunidade: `skip` (padrão) pula a linha; `importer` publica como quem importa, com aviso.
options.dateOrderopcionalDMY | MDYOrdem de datas como 03/04/2024. Sem a opção, deduzida da coluna (um dia acima de 12 decide) ou do idioma da comunidade.

Respuestas

CódigoDescripción
200A análise, com `summary` e `rows` quando veio `mapping`.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
409A importação não está mais `ANALYZED`.
429Outra planilha está sendo lida (`reason: busy`).

Ejemplo con curl

curl -X POST "https://api.memberfy.net/api/import/spreadsheet/<id>/preview" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'