In an attempt to fight misleading news on their platform, Facebook has recently changed the way you can use their API to edit previews of posts. While before you could specify the header, preview text, and the image, this is no longer possible. Instead, Facebook picks the relevant information from the website that the post links to.
This article presents a solution to continue to post customizable post previews for certain contexts.
Facebook takes action to fight fake news
To fight misleading posts with false preview texts and misleading images, Facebook has started to disable the ability for Pages to edit the previews of the links they post – both for the Page composer and the API.
Says Facebook (July 18, 2017):
By removing the ability to alter link metadata (i.e. headline, description, image) from all link sharing entry points on Facebook, we are eliminating a channel that has been abused to post false news. (…) Specifically all API versions will no longer support this capability, and Page admins will no longer be able to make these edits in Page composer. (source)
Now I’ve been doing exactly that with Jazzity: Everyday a cron job would run a script that took a few snippets from a data base and post them to Facebook using the API:
postPicture($post_message, $post_link, $post_picture, $post_name, $post_caption, $post_description);
The function postPicture (we’ll go into more details later) would take six parameters, which will make up the post as follows: