O básico
- Endereço da API:
https://memberkit.com.br/api/headless/v1. É o mesmo para todas as áreas de membros. - Chave headless: toda chamada leva o cabeçalho
X-Memberkit-Headless-Key, que identifica a sua área de membros. Copie a chave no painel, em Configurações > Acesso via API. Ela é pública e pode ir no código do site. Se precisar de uma nova, peça ao suporte da Memberkit por e-mail e troque-a no site: a antiga para de funcionar na hora, mesmo para quem já está logado. - Autenticação: depois do login, envie também o token do aluno, no cabeçalho
Authorization: Bearer <token>. - CORS: a API aceita chamadas de qualquer origem, direto do navegador. Ela não usa cookies.
Do login à aula concluída
1
Carregue a identidade visual
A primeira chamada não precisa de login. Ela devolve o nome, o logotipo, as cores e os recursos ativados da área de membros, para a tela de login já aparecer com a marca certa.
2
Faça o login
access_token. Guarde-o: ele vale por duas semanas e vai em todas as outras chamadas, junto com a chave.3
Liste os cursos
enrolled), o progresso dele e, para cursos que ele ainda não tem, o checkout_url para comprá-los. A lista é paginada; veja Paginação.4
Abra um curso e uma aula
GET /courses/{id} devolve os módulos e as aulas que o aluno pode ver, com o progresso, numa única chamada. GET /lessons/{id} devolve o conteúdo da aula, os materiais, as aulas vizinhas e o estado do aluno: concluída, avaliação, salva na lista.Uma aula que ainda não foi liberada responde normalmente, mas sem conteúdo e com o campo lock preenchido, explicando o motivo e quando ela libera. Mostre a aula bloqueada com essa explicação em vez de escondê-la.5
Toque o vídeo
GET /lessons/{id}/playback devolve o que o player precisa: a plataforma de vídeo (source), o identificador do vídeo, a URL do player assinada para o aluno (às vezes com marca d’água) e a posição de onde continuar (start_time).6
Registre o tempo assistido
7
Conclua a aula
Regras que todo site precisa respeitar
Uma sessão por aluno
Uma sessão por aluno
Cada aluno tem uma sessão ativa por vez. Entrar em outro dispositivo, no seu site ou na área de membros hospedada, encerra a sessão anterior: o token antigo passa a responder
session_replaced. Trocar ou redefinir a senha encerra todos os tokens, e sair (POST /auth/logout) encerra apenas o token daquele dispositivo. Quando receber um desses erros, apague o token e leve o aluno para o login. Donos e administradores são exceção e podem ter várias sessões.Onboarding antes do conteúdo
Onboarding antes do conteúdo
A área de membros e cada curso podem exigir que o aluno aceite um texto antes de continuar. Enquanto ele não aceitar, as chamadas respondem
onboarding_required ou course_onboarding_required. Mostre o texto (GET /onboarding ou GET /courses/{id}/onboarding) e envie o aceite.Bloqueios e acesso expirado
Bloqueios e acesso expirado
Aulas liberadas ao longo do tempo chegam com
lock. Um acesso vencido responde access_expired, e um vídeo bloqueado responde content_locked. Mostre o motivo; não esconda o conteúdo.Assinatura da área de membros suspensa
Assinatura da área de membros suspensa
subscription_suspended (402) significa que a assinatura do produtor na MemberKit venceu, não o acesso do aluno. Mostre uma tela de manutenção, não a de login.Envios repetidos
Envios repetidos
Formulários que criam algo, como comentários e mensagens de contato, devem enviar o cabeçalho
Idempotency-Key com um valor único por envio. Se o aluno clicar duas vezes ou a conexão cair, a repetição devolve a primeira resposta em vez de duplicar o comentário.Textos que chegam em HTML
Textos que chegam em HTML
O conteúdo das aulas, o texto do onboarding, as publicações da comunidade e os textos dos quizzes chegam como HTML já renderizado. Os comentários chegam como texto simples e devem ser escapados. As respostas do Assistente de IA chegam em Markdown.
Nada de iframe ou webview da área hospedada
Nada de iframe ou webview da área hospedada
A área de membros hospedada só aceita ser aberta na própria origem, então o navegador bloqueia o
iframe. Numa webview ela abre, mas entrar nela encerra a sessão do aluno no seu aplicativo, e a App Store e o Google Play rejeitam aplicativos que só empacotam um site. Construa as telas com a API.Segurança do token
Segurança do token
O token do aluno dá acesso à conta dele. Em um site no navegador, qualquer script da página consegue lê-lo, então não adicione scripts de terceiros em que você não confie e nunca renderize HTML digitado por usuários. Nunca coloque a chave da API de operador no site: ela controla a área de membros inteira.
Login a partir do seu sistema
Se o aluno já está logado no seu sistema, você pode levá-lo direto para o site sem pedir a senha: o seu servidor gera um token de login na API de operador e o site o troca por um token de aluno emPOST /auth/exchange. O passo a passo, com exemplos em Node.js, PHP e Ruby, está em Login a partir do seu sistema.