Saltar al contenido

Atualiza a própria página do membro

PUT/api/members/me/profile

Auth
Requiere token
Clave de API:
members:write
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.

A pessoa edita a **própria** página na comunidade do `X-CommunityId`: empresa, país, idiomas, links, experiência e a privacidade por seção. Só os campos enviados mudam. A bio continua sendo a `tagline` (`PUT /api/members/{id}`), a capa é enviada em `POST /api/upload/cover/member` (aqui só `coverUrl: null` a remove).

- `company`: até 100 caracteres; `null` ou `""` limpa. - `country`: ISO 3166-1 alfa-2 (`BR`); `null` limpa. Código que não existe: 400 `profile.countryInvalid`. - `languages`: até 10 códigos ISO 639 (`pt`, `en`); repetidos são ignorados; `[]` limpa. - `links`: objeto com `linkedin`, `website`, `instagram`, `github`, `x`, `youtube`; cada um uma URL `http(s)` absoluta de até 300 caracteres, ou `null`/`""` para tirar. Mescla com os links gravados; `links: null` tira todos. URL inválida ou chave desconhecida: 400 `profile.linkInvalid` com `param` `links.<chave>`. - `experiences`: a lista **inteira** (substitui a gravada), até 30 itens `{ title, company, startDate, endDate }`, datas `AAAA-MM` (ou `AAAA-MM-DD`, guardado o mês); `endDate` `null` = cargo atual. Inválido: 400 `profile.experienceInvalid`. - `privacy`: o nível por seção, `PUBLIC`, `MEMBERS` ou `PRIVATE` (padrão `MEMBERS`): `header` e `about` só `PUBLIC`/`MEMBERS`; `location` (país e idiomas), `experience` e `activity` os três; `fields` é `{ <id do campo de cadastro>: MEMBERS | PRIVATE }` (campo de cadastro nunca é público). Uma escolha acima do teto da comunidade é gravada e vale como o teto (`privacy.effective` na resposta). Inválido: 400 `profile.privacyInvalid`.

A resposta é a página como a própria pessoa a vê, com o bloco `privacy` (escolhas, níveis efetivos, tetos e os campos de cadastro).

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
companyopcionalstringmax 100
countryopcionalstringmin 2, max 2
languagesopcionalstring[]
linksopcionalobject
links.linkedinopcionalstring (uri)
links.websiteopcionalstring (uri)
links.instagramopcionalstring (uri)
links.githubopcionalstring (uri)
links.xopcionalstring (uri)
links.youtubeopcionalstring (uri)
experiencesopcionalobject[]
experiences[].titleobligatoriostringmax 100
experiences[].companyobligatoriostringmax 100
experiences[].startDateobligatoriostring
experiences[].endDateopcionalstring
privacyopcionalobject
privacy.headeropcionalPUBLIC | MEMBERS
privacy.aboutopcionalPUBLIC | MEMBERS
privacy.locationopcionalPUBLIC | MEMBERS | PRIVATE
privacy.experienceopcionalPUBLIC | MEMBERS | PRIVATE
privacy.activityopcionalPUBLIC | MEMBERS | PRIVATE
privacy.fieldsopcionalobject
coverUrlopcionalstringSó `null`: remove a capa.

Respuestas

CódigoDescripción
200Página gravada; `data` é a página como a própria pessoa a vê.
400Requisição inválida — falha de validação.
401Token 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`).
404Recurso não encontrado.
500Erro interno do servidor.

Ejemplo con curl

curl -X PUT "https://api.memberfy.net/api/members/me/profile" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'