Skip to content

Instantly share code, notes, and snippets.

@rainerborene
Last active November 30, 2023 13:26
Show Gist options
  • 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

@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