Como corrigir a integração com Zoom nas aulas ao vivo do Tutor LMS no WordPress
O que é Tutor LMS Zoom Live Class que não funciona?
O Tutor LMS Zoom é o addon do Tutor LMS Pro que conecta o WordPress à API do Zoom para agendar aulas ao vivo dentro de um curso. Quando funciona, o instrutor clica em Create a Zoom Meeting no Course Builder, define data, duração e fuso, e o Tutor LMS cria a reunião no Zoom e exibe o botão de entrada para os alunos matriculados na hora marcada.
A falha aparece quando essa ponte entre WordPress e Zoom se rompe: a aula ao vivo não cria a reunião, o botão de entrada não surge ou a tela de Set API recusa as credenciais. A causa raiz mais comum, segundo a documentação oficial do Tutor LMS, é o uso de credenciais do antigo app JWT do Zoom, descontinuado, em vez do app Server-to-Server OAuth com Account ID, Client ID e Client Secret e os escopos corretos.
Como identificar
- Ao clicar em ‘Create a Zoom Meeting’ no Course Builder, a reunião não é criada e o formulário volta vazio ou trava sem mensagem de sucesso.
- A tela ‘Tutor LMS Pro -> Zoom -> Set API’ exibe falha ao clicar em ‘Save & Check Connection’, indicando que as credenciais não autenticam no Zoom.
- A aula ao vivo aparece no curso, mas o botão de entrar na reunião não surge para o aluno matriculado na hora agendada.
- A seção Zoom Meeting não aparece no Course Builder porque o addon ‘Zoom Integration’ está desativado em Tutor LMS Pro -> Addons.
- No Frontend Dashboard do instrutor, o menu Zoom retorna erro 404 ao tentar abrir ‘Set API’ antes do ajuste de permalinks.
Como prevenir
- Use sempre o app Server-to-Server OAuth do Zoom e nunca recadastre credenciais do antigo app JWT, que está descontinuado.
- Ao criar o app, adicione de uma vez os escopos de Meeting, User e Recording para não precisar voltar quando ativar a gravação das aulas.
- Mantenha o Tutor LMS e o Tutor LMS Pro na versão estável mais recente, validando em staging antes de atualizar em produção.
- Oriente cada instrutor a conectar a própria conta Zoom em Set API e a manter os permalinks do site em ‘Nome do post’ para evitar o erro 404 no painel.
Causa
- As credenciais salvas em Set API ainda são da API Key e API Secret do antigo app JWT do Zoom, que foi descontinuado; a integração precisa do app Server-to-Server OAuth com Account ID, Client ID e Client Secret.
- O app Server-to-Server OAuth foi criado no Zoom App Marketplace mas está sem os escopos de Meeting (e de User) adicionados na aba Scopes, então a criação da reunião é recusada pela API do Zoom.
- O addon 'Zoom Integration' não está ativado em WP Admin -> Tutor LMS Pro -> Addons, então a seção Zoom Meeting nem aparece no Course Builder.
- Cada instrutor precisa conectar a própria conta Zoom em 'Set API'; quando o instrutor usa as credenciais do administrador, a criação e o gerenciamento da reunião falham, conforme a doc oficial.
- Os permalinks do WordPress não estão em 'Nome do post' (Postname), o que faz o menu Zoom do painel do instrutor retornar 404 ao abrir o Set API.
- A conta Zoom usada é gratuita e a reunião agendada passa de 40 minutos, limite do plano free do Zoom para reuniões em grupo, encerrando a aula ao vivo antes do previsto.
Como resolver
- Ative o addon Zoom Integration no Tutor LMS Pro: Sem o addon ativo a seção Zoom Meeting não aparece no Course Builder e o menu Zoom some do painel. Confirme também que o Tutor LMS e o Tutor LMS Pro estão na versão 3.9 ou superior, exigida pela integração.
Painel WP -> Tutor LMS Pro -> Addons Localize 'Zoom Integration' e ligue a chave para Ativado - Crie um app Server-to-Server OAuth no Zoom App Marketplace: O antigo app JWT do Zoom foi descontinuado e não autentica mais. Crie o app do tipo Server-to-Server OAuth, preencha a aba Information e ative o app na aba Activation antes de pegar as credenciais.
Acesse https://marketplace.zoom.us/develop Clique em Create no tipo 'Server-to-Server OAuth' Preencha a aba Information (Company Name, Developer Name e Email) Abra a aba Activation e ative o app - Adicione os escopos de Meeting e User na aba Scopes: Sem os escopos certos o Zoom recusa a criação da reunião mesmo com credenciais válidas. Na aba Scopes do app, adicione os escopos de Meeting e de User (e Recording, se for gravar); a doc recomenda incluir os escopos das categorias Meeting, Webinar, Recording e User.
No app, abra a aba Scopes -> Add Scopes Adicione os escopos da categoria Meeting (criar e ler reuniões) Adicione os escopos da categoria User Salve e volte para confirmar que o app continua ativo - Cole Account ID, Client ID e Client Secret em Set API: Na aba App Credentials do app Server-to-Server OAuth, copie os três valores e salve no Tutor LMS. O botão Save & Check Connection valida a autenticação na hora; se falhar, reveja o passo a passo dos escopos.
No Zoom, copie Account ID, Client ID e Client Secret em App Credentials Painel WP -> Tutor LMS Pro -> Zoom -> Set API Cole os três valores e clique em 'Save & Check Connection' - Ajuste os permalinks e conecte a conta de cada instrutor: Se o menu Zoom do instrutor der 404, troque os permalinks para Nome do post. Lembre que cada instrutor precisa conectar a própria conta Zoom em Set API no Frontend Dashboard, pois as credenciais do administrador não podem ser compartilhadas.
Painel WP -> Configurações -> Links Permanentes -> selecione 'Nome do post' e salve Peça a cada instrutor: Frontend Dashboard -> Zoom -> Set API Cada instrutor cola o próprio Account ID, Client ID e Client Secret - Recrie a aula ao vivo e confira a duração: Com a conexão validada, recrie a reunião no Course Builder. Em conta Zoom gratuita, mantenha a duração dentro do limite de 40 minutos para que a aula em grupo não seja encerrada antes do fim.
Course Builder -> seção Zoom Meeting -> 'Create a Zoom Meeting' Preencha Meeting Name, Date, Duration e Time Zone e clique em 'Create Meeting' Em conta free, defina a duração com no máximo 40 minutos
<?php
// Confirma se o addon Zoom Integration do Tutor LMS Pro esta ativo.
// Util para depurar quando a secao Zoom Meeting nao aparece no Course Builder.
add_action( 'admin_notices', 'full_check_tutor_zoom_addon' );
function full_check_tutor_zoom_addon() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
if ( ! function_exists( 'tutor' ) || ! function_exists( 'tutor_utils' ) ) {
return; // Tutor LMS inativo.
}
$addons = (array) get_option( 'tutor_addons_config', array() );
$zoom = $addons['tutor-pro/addons/tutor-zoom/tutor-zoom.php'] ?? array();
$is_on = ! empty( $zoom['is_enable'] );
if ( ! $is_on ) {
echo '<div class="notice notice-warning"><p>Tutor LMS: o addon Zoom Integration esta DESATIVADO. Ative em Tutor LMS Pro -> Addons.</p></div>';
}
}














