Unable to connect Discourse and WordPress


(Arpit Gogia) #1

I’m facing an issue while connecting Discourse to WordPress using the Discourse Plugin. I’m running Discourse on a Digital Ocean droplet. The setup was performed exactly as mentioned here (discourse/INSTALL-cloud.md at master · discourse/discourse · GitHub). The droplet itself sits behind CloudFlare and HTTPS was setup using Let’s Encrypt (using Setting up HTTPS support with Let's Encrypt). The WordPress site is deployed on SiteGround, also behind CloudFlare.

When I add the forum’s root address, API key and administrator username in the plugin settings, in WordPress’ console, it still keeps saying “You’re not connected to Discourse”. Upon further investigating I’ve found that this particular request /site.json%20?api_key=[FILTERED]&api_username=<username> is returning 403 Forbidden even with a fresh, valid API Key and a valid administrator username.


(Simon Cossar) #2

The request to site.json is checking that an API request can be made with the values supplied for the API Key and Publishing Username that are set on WordPress. If you make the request with curl from your local computer, is it working for you? For example, this request with $api_key set to your API key:

curl -X GET 'https://forum.example.com/site.json?api_key=$api_key&api_username=system'

If this is woking for you, you could try installing the WordPress Health Check plugin and looking at the Secure communication row on the Site Status tab to see if it’s finding any issues with communicating with external services using secure connections (SSL.)


(Arpit Gogia) #3

This curl command works perfectly fine

curl -X GET "https://community.worldbrain.io/site.json%20\?api_key\=blabla\&api_username\=bla"

Health Check mentions Your WordPress install can communicate securely with other services.

Here is what I’m seeing in HTTP API Calls section

Of course the forum itself is working so it’s pretty bizarre to see Could not resolve host


(Bhanu Sharma) #4

Can I ask how have you installed SSL on your discourse? Is it a generic cloudflare certificate or something?

Edit:
Indeed it’s cloudflare Test Results: community.worldbrain.io - Why No Padlock?

And I’m assuming you’re running their “Flexible” SSL mode. This explains a lot about why the calls are messed up.