Conectar o WP Connect ao Discourse

Depois de instalar o plugin WP Discourse, você precisa conectá-lo ao seu Discourse. Quando estiver pronto, assista a este vídeo curto ou siga as instruções abaixo.

Próximo Passo

Assim que o plugin estiver conectado, acesse o tópico que descreve o recurso que você deseja configurar:


Instruções

Passos

Ao visualizar a aba Conexão das configurações do plugin WP Discourse, haverá sempre um aviso na parte superior da página informando se ele está conectado ao seu Discourse. Para estabelecer uma conexão, insira:

  1. Insira o URL do seu fórum no campo de configuração URL do Discourse.

  2. Revise a configuração Nome de Usuário de Publicação. A menos que você tenha um motivo específico para alterá-lo, mantenha como “system”. Se você alterá-lo, ele deve ser o nome de usuário de um usuário administrador no seu Discourse. Você pode encontrar o nome de usuário de um usuário abaixo do nome dele ao clicar no avatar.

  3. Crie uma chave de API do Discourse para o WordPress:

    1. Vá para o seu Painel de Administração do Discourse (no seu fórum Discourse) e clique em “API”.

    2. Crie uma nova chave com o seguinte:

      • Descrição: insira um rótulo que deixe claro para que serve esta chave
      • Nível de Usuário: selecione “Todos os Usuários”
      • Escopo: selecione “Global”
    3. Copie a chave que aparece na tela e clique em “Continuar”.

  4. Cole a chave de API na configuração Chave de API no WP Discourse.

Quando você preencher essas configurações, certifique-se de clicar no botão ‘Salvar Opções’. Se tudo estiver configurado corretamente, você deverá ver um aviso de “Você está conectado ao Discourse” na parte superior da página.

Multisite

O plugin WP Discourse possui uma opção de Configuração Multisite para o caso em que um fórum Discourse está conectado a uma rede de múltiplos WordPress. Essa opção está disponível na aba de configurações de Conexão do site principal de uma rede.
Selecioná-la permite que algumas das configurações do plugin sejam usadas em toda a rede (todas as opções de conexão, as opções de Webhook, a Chave Secreta do DiscourseConnect e a configuração Habilitar DiscourseConnect). Habilitar esta configuração criará uma tabela de banco de dados extra que é usada para associar topic_ids do Discourse com blog_ids do WordPress quando os posts são publicados do WordPress para o Discourse.

Recursos não suportados em Multisite

O uso do WordPress como Cliente DiscourseConnect não é suportado no WordPress Multisite.

Chave de API Granular (novo :sparkles:)

Agora você pode criar uma chave de API granular para o plugin WP Discourse. As chaves de API granulares se tornarão a maneira padrão de conectar o WP Discourse ao Discourse em um futuro próximo.

Como usar uma chave granular

Veja como você pode usar uma chave granular:

  1. Primeiro, certifique-se de estar na versão 2.4.3 do plugin e na versão mais recente do Discourse no branch tests-passed. As chaves de API granulares do WP Discourse ainda não são suportadas no Discourse stable.

  2. Vá para o painel de API no painel de administração do Discourse e crie uma nova chave “Todos os Usuários”, mas com um Escopo “Granular”.

  3. Na parte inferior da lista de Escopos, você encontrará os escopos do WordPress. Selecione o escopo “Publicação” (obrigatório no momento) e os escopos para quaisquer outros recursos que você esteja usando no plugin WP Discourse, e clique em “Salvar”.

  4. Agora substitua sua chave antiga na configuração Chave de API no WP Discourse pela sua nova chave Granular e salve suas configurações.

Ao salvar suas configurações do WP Discourse, você deverá ver a mensagem normal “Você está conectado ao Discourse!”.

Se você vir “Você não está conectado ao Discourse…”, pode ser porque seus escopos estão incorretos. O plugin compara os escopos da sua chave de API com os recursos que você habilitou atualmente. Se você tiver escopos insuficientes, ele o considerará não conectado. Você pode ver quais escopos estão faltando habilitando os logs de conexão e observando as mensagens de erro no visualizador de Logs.

Os Escopos do WP Discourse

Existem quatro escopos para o plugin WP Discourse:

  1. Publicação. Este escopo permite que você publique posts do WordPress para o Discourse. Este escopo é obrigatório, mesmo que você não esteja publicando posts (por exemplo, apenas usando DiscourseConnect), pois inclui funcionalidades que todos os recursos utilizam. Isso será desacoplado no futuro, tornando todos os escopos opcionais.

  2. Comentários. Este escopo permite exibir respostas a posts publicados no Discourse no WordPress como comentários.

  3. DiscourseConnect. Este escopo permite usar o DiscourseConnect (em qualquer configuração).

  4. Utilitários. Este escopo é necessário para certas funções utilitárias disponíveis no plugin. Se você tiver algum código personalizado que interaja com o plugin, deverá habilitar este escopo, a menos que tenha certeza de que não precisa dele.

Por que usar uma chave granular?

A principal razão para usar uma chave granular é a segurança. Uma chave de API Global permite que qualquer pessoa que tenha a chave aja como um administrador em seu Discourse. Isso significa que a segurança do seu Discourse depende da segurança do seu WordPress. Uma chave granular é muito menos poderosa, sendo limitada aos escopos que você habilita para ela.

7 curtidas

Estamos vendo um problema, enquanto a atualização de Posts no Wordpress não atualiza posts relacionados no Discourse. Estamos recebendo o seguinte erro nos logs.

ERRO:
publish.ERROR: update_post.post_error {“wp_title”:"title … ",“wp_author_id”:“2205402”,“wp_post_id”:3179224,“response_message”:“Você não tem permissão para visualizar o recurso solicitado. O nome de usuário ou a chave da API é inválido.”,“http_code”:403}

Estamos usando a chave Granular para conectar WP Discourse ao Discourse com os escopos “Wordpress Publishing” e “Wordpress Commenting”. Alguém pode me ajudar com isso?

Olá @deepak_dhamde, sinto muito que você esteja tendo um problema. Estou viajando hoje, mas tentarei recriar seu problema e retornarei para você amanhã cedo.

1 curtida

Olá @deepak_dhamde, gravei um vídeo meu configurando uma chave granular com os escopos que você está usando. Se você puder revisar e me informar se está fazendo algo diferente.

Olá @angus, desculpe pela demora na resposta.
Estamos seguindo exatamente o mesmo procedimento para gerar a Granular Key, mas ainda vemos o mesmo erro 403 nos logs. Quando atualizamos posts do WordPress, o tópico relacionado no Discourse não é atualizado.

ERRO:

[2024-09-16 06:51:28] publish.ERROR: update_post.post_error {“wp_title”:“Testing update post feature on staging site”,“wp_author_id”:“2168699”,“wp_post_id”:3175772,“response_message”:“Você não tem permissão para visualizar o recurso solicitado. O nome de usuário ou a chave da API é inválido.”,“http_code”:403}

Olá @deepak_dhamde.

Provavelmente haverá alguma pequena diferença na forma como você está configurando, ou no seu ambiente. É difícil para mim encontrar essa diferença sem mais informações. Aqui estão algumas maneiras de prosseguirmos:

  1. você poderia me dar acesso ao seu ambiente (fico feliz em assinar um NDA) para que eu possa dar uma olhada; ou
  2. você poderia gravar seu próprio vídeo fazendo a mesma coisa que acabei de fazer (envie-o para mim privadamente); ou
  3. você pode dar outra olhada e considerar estes fatores:
    • Seu Discourse e Wordpress estão atualizados?
    • Você consegue criar uma chave “Global” funcional?
    • Você tentou pedir a diferentes membros da sua equipe para fazerem o mesmo conjunto de etapas (às vezes, um novo olhar verá algo novo)
    • compartilhe o arquivo “meta” no seu visualizador de logs do WP Discourse comigo (ou seja, seu ambiente Wordpress) e eu verei se algo se destaca.

Olá @angus,

Criamos uma nova chave Granular, seguimos o procedimento que você mencionou no vídeo e habilitamos a permissão de edição no escopo de postagem, e começou a funcionar. Muito obrigado por ser tão paciente e prestativo.

1 curtida

4 posts were split to a new topic: Conectando WP Discourse a uma instância local do Discourse executando uma versão específica