Instalei o plugin WP Discourse e tudo parece estar funcionando bem, exceto o webhook “Sync Comment Data”. Ele continua retornando como “Falha” com um Status Code: 400.
Esta é a resposta:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Sua nave enviou uma requisição que este servidor não pôde entender.<br />
</p>
</body></html>
A URL do payload parece estar correta.
A Chave Secreta do Webhook está configurada tanto no Discourse quanto no plugin do WP.
O Tipo de Conteúdo é application/json.
A opção Post Event está marcada.
A opção Verificar certificado TLS da URL do payload está marcada.
Verifique novamente se a URL do payload e a Chave Secreta do Webhook estão configuradas corretamente.
Se isso não resolver o problema, você pode me informar qual estrutura de permalink seu site WordPress está usando? A estrutura de permalink é encontrada na seção Configurações / Permalinks do painel do WordPress.
Qual é o formato da URL que você está adicionando ao campo URL de Carga Útil do webhook no Discourse? Você pode omitir a parte do domínio da URL. A URL fornecida na descrição da opção Sincronizar Dados de Comentário no WordPress deve estar correta (ela é criada com base na estrutura de permalinks que seu site utiliza), mas pode ser que não seja adequada para o seu caso.
Uma das funcionalidades anunciadas do plugin Ithemes Security é que ele pode ser usado para bloquear o acesso à Rest API. Vale a pena confirmar se essa não é a causa do problema.
Você não precisa usar o webhook Sync Comment Data com o plugin WP Discourse. O principal benefício de utilizá-lo é permitir que os comentários apareçam imediatamente após serem publicados no Discourse, em vez de ter que esperar até 10 minutos para buscar novos comentários. Em sites muito ativos, o webhook pode reduzir o número de solicitações de API que seu site faz ao Discourse. Isso afeta principalmente sites que exibem a contagem de comentários em uma página de índice de posts.
Sim, está funcionando, mas eu queria implementar os webhooks para evitar o atraso.
Verifiquei com nosso desenvolvedor e ele disse que não há nenhuma REST API bloqueada antes ou depois da instalação do plugin de segurança. Estou perplexo.
A captura de tela que você postou acima é um bom indicativo de que a URL do payload está correta. O código de resposta 400 que você está recebendo indica que o servidor WordPress está rejeitando a solicitação. Se o problema fosse uma incompatibilidade na chave secreta, você receberia um código de resposta 500.
Se você tiver acesso ao arquivo de Log de Acesso do seu site WordPress, ele provavelmente mostrará exatamente qual é o problema.