# Como corrigir a integração com Zoom nas aulas ao vivo do Tutor LMS no WordPress

A integração do Tutor LMS com o Zoom falha quando as credenciais ainda são do antigo app JWT (descontinuado), quando o app Server-to-Server OAuth está sem os escopos de Meeting, ou quando o addon Zoom Integration do Tutor LMS Pro não está ativo. A reunião não é criada e o botão da aula ao vivo não aparece.

## 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.

**Antes de começar:** O Client Secret do app Server-to-Server OAuth dá acesso à sua conta Zoom; nunca o exponha em código público nem em capturas de tela. Antes de trocar credenciais ou atualizar o Tutor LMS em produção, faça backup do site ou teste em um ambiente de staging para poder reverter.

## 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.

Erros relacionados

- [Como corrigir alunos sem acesso ao login no Tutor LMS](https://full.services/wp-fixer/corrigir-login-aluno-tutor-lms/)
- [Como corrigir o Course Builder que não carrega no Tutor LMS](https://full.services/wp-fixer/corrigir-course-builder-nao-carrega-tutor-lms/)
- [Como corrigir o progresso do aluno que não atualiza no Tutor LMS](https://full.services/wp-fixer/corrigir-progresso-aluno-tutor-lms/)

## 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

1. 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
```

2. 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
```

3. 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
```

4. 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'
```

5. 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
```

6. 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
```


## Código

```php
<?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>';
    }
}
```

## Perguntas frequentes

### Por que a aula ao vivo do Zoom não cria a reunião no Tutor LMS

Na maioria dos casos as credenciais salvas em Set API ainda são do antigo app JWT do Zoom, que foi descontinuado. Crie um app Server-to-Server OAuth no Zoom App Marketplace e cole o Account ID, Client ID e Client Secret na tela Set API do Tutor LMS Pro.

### Quais credenciais do Zoom o Tutor LMS usa hoje

O Tutor LMS usa o app Server-to-Server OAuth, que fornece Account ID, Client ID e Client Secret na aba App Credentials. Não usa mais a API Key e API Secret do antigo app JWT, descontinuado pelo Zoom.

### O botão Save & Check Connection falha mesmo com as credenciais certas

Quando os três valores estão corretos mas a conexão falha, normalmente faltam escopos no app. Abra a aba Scopes do app Server-to-Server OAuth e adicione os escopos das categorias Meeting e User antes de testar de novo.

### Por que a seção Zoom Meeting não aparece no Course Builder

A seção só aparece com o addon Zoom Integration ativo. Vá em WP Admin -> Tutor LMS Pro -> Addons e ligue o Zoom Integration; confirme também que o Tutor LMS Pro está na versão 3.9 ou superior.

### Cada instrutor precisa conectar a própria conta Zoom

Sim. A documentação do Tutor LMS afirma que cada instrutor precisa conectar a própria conta em Set API, pois as credenciais do administrador não podem ser compartilhadas para criar e gerenciar reuniões.

### O menu Zoom do instrutor abre com erro 404, como resolver

Esse 404 costuma ser de permalinks. Vá em Configurações -> Links Permanentes, selecione 'Nome do post' (Postname) e salve; em seguida o instrutor consegue abrir o Set API pelo Frontend Dashboard.

### A aula ao vivo encerra antes do tempo, o que está errado

Em conta Zoom gratuita, reuniões em grupo têm limite de 40 minutos. Reduza a duração da aula para dentro desse limite ou use uma conta Zoom paga para sessões mais longas.

### Preciso migrar do app JWT antigo para o Server-to-Server OAuth

Sim. O tipo de app JWT do Zoom foi descontinuado. Crie um novo app Server-to-Server OAuth, adicione os escopos e atualize as credenciais em Set API; sem essa migração a integração não autentica mais.

**Fonte:** [Themeum — Tutor LMS Zoom Integration (documentação oficial)](https://docs.themeum.com/tutor-lms/addons/zoom-integration/)
