Hi
Our journalism students have a daily reporting class where they work with a SaaS CMS called Melody. It is used to prepare content for both print, online and social media publishing.
For the online part, I set up a ghost blog last year at this URL (I love ghost and have used it for other projects since 2018):
It’s running v3.41.3 (just updated it)
The people at Melody tell us that the way they automate the posting of articles from Melody to other publishing platforms such as Drupal or Wordpress is this (we are the first ghost blog they interact with):
Step 1
When an article is marked as “published” in Melody, a “call” is sent to a URL that would be starting with “https://latelier.uqam.media/…”
This URL should contain the Melody article ID ({articleID})
I understand this is like a webhook.
Step 2
After receiving the “call”, ghost then calls back Melody’s API using this URL:
“https://melody.{ourdomain}.demainunautrejour.com/webservice/article/{articleID}/json”
Step 3
With the article payload retrieved in step 2, ghost publishes article on the latelier.uqam.media site using the {articleID} as {slug}
Thus the canonical URL becomes “https://latelier.uqam.media/{articleID}”
Now, I am familiar with ghost’s Admin API as during previous semesters, I was using a python script to scan a range of articleIDs on Melody’s API running at 5-minute intervals with a cronjob. When it found a newly published article, it sent a POST request to the ghost Admin API (https://latelier.uqam.media/ghost/api/v3/admin/posts/?source=html)
I was using token authentication.
I told people at Melody: I’ll send you the Admin API Key so that you can generate a POST request to our ghost Admin API. But they told me: no, that’s not how we do it. They told me ghost has to “listen” to a “call” from Melody will send it at a URL as described in step 1.
Is it possilbe? If yes, how can I configure ghost to “listen”? What URL could I give them that ghost would react to, fetch the content on their API and publish a post?
Thanks very much in advance for any help or ideas!