Extrato de engajamento (quem fez o quê, quando e onde)
GET/api/reports/engagement/activities
- Auth
- Jeton requis
- Clé d’API:
- reports:read
- X-CommunityId
X-CommunityIdEnvoyez le X-CommunityId de la communauté où l’opération a lieu.
Owner, admin, moderador ou financeiro (a equipe), inclusive atividade em espaço privado. Uma linha por atividade, da mais recente para a mais antiga, das mesmas fontes que definem "membro ativo" em `GET /api/reports/engagement` e no Dashboard.
Tipos (`kind`): `post` (post no feed), `article` (conteúdo), `comment` (em post, conteúdo, evento ou curso), `reaction` (em post, conteúdo, comentário, evento ou curso), `event` (inscrição em evento, vou/talvez), `enrollment` (matrícula em curso), `lesson` (abriu ou concluiu aula), `classified` (anúncio nos Classificados), `gallery` (imagem na Galeria), `event_created` (criou um evento), `attendance` (check-in no módulo Presença) e `login` (entrou na comunidade; registrado pelo Engajamento, uma vez por dia).
`points` é o que o Engajamento deu por aquela atividade (0 sem Engajamento ou sem regra). Não há linha separada de pontos; receber uma curtida não aparece no extrato (não é algo que o membro fez). `target` é o item da atividade (`type`: status, content, event, course, classified ou gallery) com `title` e `link`; item apagado vem com `title` e `link` nulos. `space` é nulo fora de espaço ou com o espaço apagado.
Paginação por cursor: passe `pagination.nextCursor` em `cursor` enquanto `hasMore` for `true`. Não há total. Período: `from`/`to` em datas do fuso da comunidade, inclusive, padrão últimos 30 dias, no máximo 366 dias.
**CSV:** `format=csv` (ou `Accept: text/csv`) baixa o extrato com os mesmos filtros (sem `cursor`/`limit`), colunas no idioma do `Accept-Language` (data e hora no fuso da comunidade, membro, atividade, espaço, item, link, pontos). Acima de 50.000 linhas responde 422 antes de começar: encurte o período ou filtre. Acima de 2.000 linhas responde 202: o CSV é gerado numa fila e o link chega por e-mail a quem pediu.
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
fromfacultatif | query | string (date) | Primeiro dia (AAAA-MM-DD, fuso da comunidade). Padrão 29 dias antes de `to`. |
tofacultatif | query | string (date) | Último dia, inclusive. Padrão hoje. |
timezonefacultatif | query | string | Fuso IANA em que os períodos são contados. Padrão: o fuso do país da comunidade (o mesmo dos prazos do call4papers). A resposta devolve o fuso usado em `timezone`. |
memberIdfacultatif | query | string | Só as atividades deste membro. |
kindfacultatif | query | post | article | comment | reaction | event | enrollment | lesson | classified | gallery | event_created | attendance | login[] | Um ou mais tipos (`kind=post&kind=article` ou `kind=post,article`). |
spaceIdfacultatif | query | string | Só as atividades deste espaço. |
cursorfacultatif | query | string | O `nextCursor` da página anterior. |
limitfacultatif | query | integer | |
formatfacultatif | query | json | csv |
En-têtes
| Nom | Type | Description |
|---|---|---|
X-CommunityIdfacultatif | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Réponses
| Statut | Description |
|---|---|
200 | Uma página do extrato (JSON) ou o arquivo CSV. |
202 | Exportação grande (mais de 2.000 linhas): o arquivo não vem na resposta. Ele é gerado numa fila com os mesmos filtros, guardado de forma privada e o link (válido por 72 horas) vai por e-mail para quem pediu. `data.email` é o endereço que recebe; se a pessoa perder o papel antes da geração, recebe um aviso de falha em vez do link. |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Autenticado, mas sem permissão para esta operação. |
422 | O CSV passaria de 50.000 linhas. |
500 | Erro interno do servidor. |
Exemple curl
curl -X GET "https://api.memberfy.net/api/reports/engagement/activities" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID"