I’m working on a wordpress site and have the WP Discourse plugin installed. Our objective is obviously to sync our wordpress site with the Discourse forum so that when a post is published to the site it is also published to Discourse.
However until now it didn’t work much. While creating a post, even with the “Create new Topic” Discourse box checked, it does not work and the post isn’t created in the forum.
I went to the WP Discourse plugin settings and to me everything seemed to be fine (everything isn’t obviously fine and I may have done something wrong as it doesn’t work), the Discourse API key is correct as well as the SSO secret key, as I’m also trying to use my wordpress site as an SSO provider.
I noticed in the WP Discourse plugin settings that there were two error messages, when accessing the “SSO Provider” and “Connection” tabs:
which is quite problematic because there IS an admin user with this email address on the forum (myself).
and most importantly, “You are not connected to Discourse. If you are setting up the plugin, this notice should go away after completing the form on this page.”
Soooo my wordpress and Discourse don’t seem to be synced. Can I please get some help in order to solve this ? Feel free to ask if you need more information - I guess you obviously do
The first thing to sort out is the issue on the Connections tab. The plugin won’t work until you establish a connection with Discourse.
What have you set for the Publishing Username on that tab? It should be set to either the Discourse username of the system user (‘system’ by default) or the username of an admin user from your forum.
So it seems really dumb, but as expected the Publishing Username wasn’t correct (I missed a space on the name). I fixed this and now I have the “You are connected to Discourse!” message.
Also no more error message on the SSO Provider tab. By the way I’m using WordPress 4.9.3.
Anyway, sorry for the inconvenience and thanks again for the answer. I’ll update this thread/create another one if I have any other issue especially with synchronizing the creation of posts between Wordpress and the forum.
For the Publishing Username setting, you need to use the username of your Discourse System user. That username defaults to ‘system’ (without the quotes.) For the API Key, use the All Users API Key. You can find that key at /admin/api/keys.
When I try to visit your site at http://biohackplus.com/, the page isn’t loading for me. Are you able to access it at that URL?
I was able to connect to Discourse. However, although I put all the needed info Publishing tab, when I create a post in Wordpress, it doesn’t show in Discourse.
What I’m trying to do: When I create a post in a category in Wordpress, the plugin will create a post in Discourse with link to my Wordpress post in a matched Discourse Category.
Meu site tem um problema semelhante. Instalei o WP Discourse, criei uma chave para todos os usuários e o nome de usuário de publicação é ‘system’. Mesmo assim, ainda vejo a mensagem ‘Você não está conectado ao Discourse…’. Meu site é proxy pelo Cloudflare, mas, pelo que posso dizer, está funcionando corretamente. Qualquer ajuda é muito apreciada. O Discourse é a versão 2.6.0.b4.
Olá @angus, obrigado pela resposta. Infelizmente, após criar a chave de usuário único conforme você indicou, ainda recebo a mensagem de sem conexão. Já tentei tudo o que pude pensar, mas sem sucesso… obrigado novamente.
Ative o modo de solução de problemas e ative apenas o plugin wp-discourse (todos os outros plugins serão desativados). Em seguida, tente conectar novamente.
3a. O Health Check & Troubleshooting (também conhecido como Site Check) está instalado há algum tempo. Uma “questão crítica” questionável relatada pelo Yoast SEO é “Seu site não pode ser encontrado pelos motores de busca.” Instruções adicionais de solução de problemas afirmam que “se o Google puder executar o Teste de Compatibilidade com Mobile, o Google também poderá rastrear o domínio. Nesse caso, o aviso do Ryte está errado.” Tanto o domínio quanto o subdomínio passam no teste.
3b. Tentei isso anteriormente e tentei novamente. Todos os plugins, exceto o WP Discourse, foram desativados. O WP Discourse não conecta.
ATUALIZAÇÃO: Tenho me dedicado a isso há vários dias e há várias coisas que não entendo, provavelmente porque quase tudo isso é totalmente novo para mim.
O registro DNS “A” para o subdomínio discourse aponta para o IP atribuído pela DO (o mesmo IP que uso para SSH), mas dig discourse.example.com aponta para três IPs diferentes aparentemente atribuídos pela Cloudflare, e dig https://discourse.example.com aponta para outro IP whois BAREFRUIT-ERRORHANDLING no Reino Unido. Algo não está certo aqui!
Acredito que o WP Discourse use cURL para se conectar ao Discourse, então tenho experimentado o cURL e a API do Discourse. Tenho três chaves de API (incluindo a chave confirmada acima). Até ontem, todas as três indicavam “Nunca Usada”. Ontem, notei que a chave original criada em agosto passado agora indica que foi usada há um dia! As outras duas ainda indicam “Nunca Usada”. Acredito que isso provavelmente signifique que um ou mais dos meus experimentos com cURL realmente se conectaram; infelizmente, não sei quais funcionaram. Também observei que comandos cURL que retornam HTTP 200 não alteram a informação de “Último Uso” da API (permanece “Nunca Usada”).
Tanto o ponto #1 quanto o #2, acima, parecem importantes para mim, mas ainda não consigo determinar os problemas.
Peço desculpas pelo atraso; às vezes a vida interfere. Novamente, @angus, obrigado pela sua ajuda.
Usando cURL no meu computador local, também recebo um erro 403, então parece que se trata de um problema upstream entre meu site e o WP Discourse. Provavelmente é o Cloudflare, mas não quero removê-lo por enquanto. Veja abaixo.
Mais um pedido de desculpas pela minha lentidão. Recebi um aviso do meu serviço de hospedagem informando que meu site está sendo migrado para outro servidor e haverá algumas alterações, incluindo uma mudança de IP. Portanto, preciso adiar mais trabalho sobre esse problema. Posso contar com você novamente quando as coisas se acalmarem?
EDIT: Resolvido! Talvez seja um bug em /admin/site_settings/category/security → allowed crawler user agents.
Parece que qualquer entrada no campo de texto de UA permitida causa o bloqueio de tudo, até mesmo um comando curl da linha de comando do meu computador local. Ao redefinir o texto para vazio, imediatamente o WP Discourse exibe: " Você está conectado ao Discourse!".
Sim, acredito que essa configuração seja intencionalmente bastante restritiva (daí o aviso em LETRAS MAIÚSCULAS nas instruções).
Para permitir que sua instância do WordPress seja acessada ao usar allowed crawler user agents, você pode adicioná-la da seguinte forma:
Wordpress/<versão_do_wordpress>
Acabei de testar isso no meu WordPress / Discourse de teste, adicionando Wordpress/5.5.3 a allowed crawler user agents e funcionou
Se você não quiser ficar atualizando isso toda vez que fizer uma atualização do WordPress, pode usar um plugin simples para definir seu próprio user agent para esse tipo de solicitação no WordPress, por exemplo:
Obrigado pela explicação. Isso está começando a fazer mais sentido para mim. Inicialmente, achei que “agentes de usuário de rastreador permitidos” servia para identificar os rastreadores de mecanismos de busca permitidos. Eu havia inserido “Googlebot” sem entender que o WP Discourse usa um agente de usuário do WordPress e, por isso, foi bloqueado. Apenas mais um erro de iniciante. Acredito que seja um mal-entendido comum, mas não encontrei nada na documentação limitada e nos exemplos ainda mais escassos.
Como “agentes de usuário de rastreador permitidos”, estou usando agora: WordPress (versão não necessária), Googlebot e Discourse (adicionado para uso com cURL, conforme abaixo). Você vê algum problema? Ou preciso adicionar outros?
Parece algo semelhante com o cURL usando a API do Discourse. Anteriormente, recebia erro 403 até adicionar o agente de usuário, conforme abaixo.
Primeiro exemplo publicado na documentação da API do Discourse (não funciona para mim):
curl -X GET "http://127.0.0.1:3000/admin/users/list/active.json" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: system"
Isso funciona para mim após adicionar a opção de agente de usuário.
curl -A Discourse -X GET "http://discourse.example/admin/users/list/active.json" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: system"
Na minha opinião, exemplos não deveriam ser publicados a menos que estejam completos e funcionais… aargh.
@angus, muito obrigado pela sua ajuda e assistência.
O único plugin de associação que conheço e que funciona tanto com WordPress quanto com Discourse é o Memberful. Eles também têm instruções detalhadas sobre como integrar com o Discourse aqui – Integrate Discourse with Memberful - Memberful
Se você já estiver usando outro plugin de associação, vale a pena entrar em contato com eles e perguntar diretamente. Eu o usei no meu portfólio de sites de clientes que está aqui.