Skip to content

Instantly share code, notes, and snippets.

@rainerborene
Last active November 30, 2023 13:26
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rainerborene/26bc6b66bbc5dd4f78a1141df31ef718 to your computer and use it in GitHub Desktop.
Save rainerborene/26bc6b66bbc5dd4f78a1141df31ef718 to your computer and use it in GitHub Desktop.

Memberkit API

hey, não esqueça de enviar sua api_key em todas as chamadas de requisição. Em alguns endpoints, limitamos para 50 registros máximos retornados. A paginação pode ser feita pelo parâmetro page.

O endereço de origem é https://memberkit.com.br para todos endpoints abaixo.

  • GET /api/v1/courses

    Lista todos os cursos cadastrados.

  • GET /api/v1/courses/:id

    Retorna dados básicos do curso, lista de módulos e respectivas aulas.

  • GET /api/v1/courses/:course_id/lessons/:id

    Retorna conteúdo da aula, meta dados do vídeo e materiais complementares.

  • GET /api/v1/membership_levels

    Lista todas as assinaturas ativas na área de membros.

  • GET /api/v1/classrooms

    Lista todas as turmas ativas na área de membros.

  • GET /api/v1/classrooms/:id

    Retorna dados sobre uma turma específica.

  • GET /api/v1/rankings

    Lista os membros e respectivas pontuações acumuladas no ranking.

    Parâmetros
    Parâmetro Descrição
    classroom_id Filtragem por turma.
  • GET /api/v1/users

    Lista todos os membros cadastrados na plataforma.

  • GET /api/v1/users/:email

    Retorna dados básicos do membro, lista de cursos matriculados, assinaturas e nível de acesso ilimitado.

  • PUT /api/v1/users/:email

    Atualiza dados básicos do membro. Os parâmetros permitidos são: full_name, email, bio, unlimited e blocked.

  • GET /api/v1/users/:email/rankings

    Lista as pontuações de um membro específico.

  • DELETE /api/v1/users/:email

    Remove membro cadastrado.

  • POST /api/v1/users

    Cadastra ou atualiza membro.

    Parâmetros

    Importante: Há três níveis de acesso na Memberkit: matrículas individuais, acesso ilimitado ou assinatura. Ao enviar sua requisição, use apenas uma modalidade de inscrição usando o parâmetro classroom_ids, unlimited ou membership_level_id.

    Parâmetro Descrição
    full_name Nome completo do aluno
    email Endereço de email do aluno
    status Use inactive, pending, active, ou expired.
    blocked Bloqueio global de acesso na área de membros, sendo true ou false
    classroom_ids IDs de turmas separado por vírgula
    unlimited Acesso ilimitado, sendo true ou false
    membership_level_id Código de assinatura
    expires_at Data de expiração da matricula (ex: 13/12/2020)
  • POST /api/v1/scores

    Adiciona uma nova pontuação.

    Parâmetros
    Parâmetro Descrição
    user_email Email do aluno
    reason Motivo da pontuação (ex: Postagem no instagram)
    value Quantidade de pontos adicionados
    course_id ID do curso
  • DELETE /api/v1/scores

    Desfaz pontuação.

    Parâmetros
    Parâmetro Descrição
    user_email Endereço de email do aluno
    reason Texto exato da pontuação
    course_id ID do curso
  • POST /api/v1/tokens

    Gera um novo token de autenticação com duração de 1 hora.

    Parâmetros
    Parâmetro Descrição
    email Endereço de email do membro
@rainerborene
Copy link
Author

@andreladocruz O phone_local_code seria o código de área do telefone. As plataformas de pagamento, normalmente, não enviam o código do país nos webhooks enviados. Mas se for realmente necessário, pode colocá-lo neste mesmo campo junto com o código de área.

@andreladocruz
Copy link

@rainerborene, posso colocar o país no local_code e o telefone com o código de área no phone_number? porque senão temos que criar uma "inteligência artificial" (ifs) do lado de cá para ver se o telefone é do brasil (55) e "mover" o código de área para o local_code na integração de vocês...

@rainerborene
Copy link
Author

rainerborene commented Jan 20, 2022

@andreladocruz Fica ao seu critério. Não há um formato estrito ou validação destes dois campos. Então cabe ao cliente da Memberkit e a plataforma integrada, por exemplo, Notificações Inteligentes, lidar com a leitura e formatação dos números.

@andreladocruz
Copy link

@rainerborene .... SENSACIONAL!!!! vamos colocar na lista de melhorias do lado de cá. Obrigado!!!!!

@kimtiago
Copy link

@rainerborene cpf e telefone são atributos exclusivos da API? pq não vi esses campos para inserir manualmente no cadastro dos usuários

@andreladocruz
Copy link

@rainerborene , lembra de atualizar a documentação depois:

image

@rainerborene
Copy link
Author

@lucianoks O problema foi devido a uma atualização feita hoje (dia 26) às 8h. Mas já foi depurado e corrigido. Obrigado pelo feedback.

@kimtiago Esses campos são metadados e não são visíveis na plataforma por enquanto. Mas já demos o start na implementação de campos customizados (sem previsão de finalização). Os dados em questão: cpf e telefone são capturados da plataforma de pagamento automaticamente. Até então esses dados não eram editáveis.

@lucasdbb
Copy link

lucasdbb commented Feb 3, 2022

Existe a possibilidade de "clonar" uma área de membros inteira? A ideia é replicar várias áreas da memberkit para empresas terem acesso ao conteúdo.

@renzon
Copy link

renzon commented May 21, 2022

@rainerborene como eu desativo usuários na plataforma? Tentei os alterar o status dos membros para Expirado e Desativado em suas respectivas assinaturas, mas isso não tem efeito na contagem de assinantes. Ou seja, como vejo quantos são os usuários ativos e pelos quais eu pago dentro da plataforma?

@renzon
Copy link

renzon commented May 21, 2022

Acabei de ver que a contagem só diminui quando excluimos os membros. Eu esperava que não fossem contabilizados clientes que não tivessem acesso a nenhum curso, como se fosse uma deleção lógica, até para poder trabalhar na recuperação desse aluno posteriormente e ele voltar com a própria conta que já tinha. Pode clarificar como funciona @rainerborene ?

@rainerborene
Copy link
Author

@renzon O status desativado ou expirado nas assinaturas ou matriculas não influenciam na contagem do aluno. Até porque podem existir mais conteúdos matriculados no perfil do aluno. Para desconsiderá-lo da contagem, você pode removê-lo da sua área de membros.

@FlipQuadros
Copy link

@rainerborene, é possível adicionar o campo password na hora de incluir o aluno através do POST api/v1/users?

Pergunto, pois trabalhamos com cursos gratuitos e milhares de alunos são leigos, que inclusive jamais acessar uma video aula na vida. Porém a conversão é baixa por conta de o e-mail com a senha cair muito na caixa de spam deles. A ideia seria que a senha de cada um pudesse ser o CNPJ da empresa, isso facilitaria a nossa comunicação com os milhares de alunos.

@rainerborene
Copy link
Author

@FlipQuadros Dentro da página Configurações, você pode definir uma senha padrão para novas contas.

@FlipQuadros
Copy link

FlipQuadros commented Jul 22, 2022

@FlipQuadros Dentro da página Configurações, você pode definir uma senha padrão para novas contas.

Atualmente utilizamos essa alternativa, porém a empresa tem recebido muitos relatos de vazamento de senha e acesso por terceiros à conta dos alunos. O que acabou se tornando uma alternativa insegura na nossa realidade.

Se fizer sentido para o plano de negócios da empresa, será algo que melhorará nossa relação com toda nossa carteira de alunos, do qual estamos para atingir os 50 mil, e imagino que a relação de outras empresas que são hoje também suas parceiras.

Desde já, muito obrigado. Mantenho o canal aberto e à disposição para a troca de informações.

@rainerborene
Copy link
Author

@FlipQuadros Acabamos de implementar o parâmetro password na rota POST /api/v1/users. Para todas as novas contas de usuários, será possível definir uma senha personalizada. Ressalto que é válido apenas para novas contas de membros (ou seja, sem operação de atualização de contas existentes por enquanto).

@lucasfalalima
Copy link

@FlipQuadros Acabamos de implementar o parâmetro password na rota POST /api/v1/users. Para todas as novas contas de usuários, será possível definir uma senha personalizada. Ressalto que é válido apenas para novas contas de membros (ou seja, sem operação de atualização de contas existentes por enquanto).

Rainer, minha senha padrão para novos alunos não funciona mais… o que aconteceu?

@rainerborene
Copy link
Author

@lucasfalalima Entre em contato no suporte@memberkit.com.br e mande os dados da sua área de membros e o endereço de email do aluno.

@PedroPimentelOficial
Copy link

PedroPimentelOficial commented Aug 20, 2022 via email

@PedroPimentelOficial
Copy link

Ainda não consegui realizar o pagamento! Se alguémn puder me ajudar...

@kimtiago
Copy link

kimtiago commented Aug 21, 2022

@PedroPimentelOficial este canal é pra tirar duvidas ou propor sugestões a respeito da API da Memberkit, para suporte você deve enviar um email para suporte@memberkit.com.br

@renzon
Copy link

renzon commented Mar 3, 2023

Na página de escolha de vídeos seria muito bom poder colocar uma url do YOUTUBE e ele achar o vídeo pelo código. Estou tentando achar um vídeo que acabei de fazer upload e ele não está aparecendo como opção, e estou copiando o título do próprio YT. Já cliquei em atualizar para ele puxas os dados via API e nada. Também ajudaria se no campo de busca pudesse se colocar o id do YT. Para quem é dev, é bem mais fácil colocar o id que ficar filtrando por título.

@life365dev
Copy link

Olá. Conseguimos atualizar via API se uma determinada aula foi concluída ou não? Irei precisar desta funcionalidade pois estou exibindo em meu site os cursos e aulas, e preciso fazer este update dinamicamente.

@life365dev
Copy link

@rainerborene tudo jóia? Conseguimos de alguma forma saber se determinada aula foi concluída ou não? Também preciso saber se tem como atualizarmos o status de conclusão dessas aulas, me ajuda? Obrigado...

@rainerborene
Copy link
Author

@life365dev Acabamos de colocar esse demanda no backlog. Acredito que até fim de novembro isso estará finalizado!

@rodrigoscdc
Copy link

@rainerborene Não sei se aqui é o canal correto para fazer esse questionamento, mas eu consigo dentro da área de aulas embedar uma aplicação do tipo appsmith, sem ser somente um video? Pois eu testei e não obtive sucesso, mas gostaria de saber se tem alguma trava mesmo. Obrigado

@rainerborene
Copy link
Author

@rodrigoscdc Vc pode embedar um iframe dentro do conteúdo da aula. Pode ser que atenda sua necessidade.

@lucascouts
Copy link

Preciso que a API permita alterar o 'membership_level_id', 'classroom_ids' e o 'status' com o PUT, não faz sentido alterar apenas dados pessoais do assinante, eu preciso vender mais de uma assinatura e vão ter datas de expiração diferentes, não tem logica bloquear o usuário.

Outro ponto importante, a visualização dos cursos na home, poderia ter uma opção de mostrar as aulas naquele modelo Netflix, ao menos as primeiras aulas. Por conta disso, minha cliente criou aulas como cursos para mais cards para os alunos, gerou mais problemas tendo que replicar as turmas, uma para cada aula(curso), algo que poderia ser resolvido facilmente com essa opção.

e por fim, a API precisa de mais métodos para criar, atualmente só podemos criar membros e com restrição para atualizar, daria mais possibilidades para integrações, como por exemplo para Woocommerce, vendendo como assinaturas, poderiam desativar o usuário da assinatura individualmente.

@rainerborene
Copy link
Author

@lucascouts Temos a rota POST /api/v1/users que cadastra ou atualiza o registro existente. Esta rota é responsável pela mudança das permissões de usuário. Enquanto a rota PUT altera os dados pessoais do usuário.

@lucascouts
Copy link

@lucascouts Temos a rota POST /api/v1/users que cadastra ou atualiza o registro existente. Esta rota é responsável pela mudança das permissões de usuário. Enquanto a rota PUT altera os dados pessoais do usuário.

Obrigado, pensei que havia separado os métodos, já resolve o principal.

considere as outras observações, vai ajudar muito.

@rodrigoscdc
Copy link

rodrigoscdc commented Nov 15, 2023

@rainerborene nos demais endpoints onde é buscado outras informações como classrooms, courses, membership_levels teria como inserir no header como é feito em users o parâmetro de total-pages, ou então tem alguma outra forma de controlar a paginação. Estou tentando buscar as informações para alimentar meu banco de dados para fazer analytics nas informações, estou fazendo isso com Airbyte ai também quero entender quando a resposta é 429 retry later, no header tem um parâmetro x-runtime com um valor, esse valor representa o que? Tem alguma expressão baseado nesse número que eu possa fazer para saber quando fazer a próxima request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment