From 97b14b93310c937020632284bb76680ac19ca823 Mon Sep 17 00:00:00 2001 From: FORESTIER Fabien <fabien.forestier@soprasteria.com> Date: Mon, 3 Feb 2020 14:53:27 +0100 Subject: [PATCH] Add documentation for social-media-share-helper service --- docs/assets/social-media-share-helper.png | Bin 0 -> 17357 bytes .../services/social-media-share-helper.md | 34 +++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 docs/assets/social-media-share-helper.png diff --git a/docs/assets/social-media-share-helper.png b/docs/assets/social-media-share-helper.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa7d84dde107be2fafae0dcb966589dc44e907c GIT binary patch literal 17357 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 DNWLdR literal 0 HcmV?d00001 diff --git a/docs/components/services/social-media-share-helper.md b/docs/components/services/social-media-share-helper.md index 00e8196..0656e24 100644 --- a/docs/components/services/social-media-share-helper.md +++ b/docs/components/services/social-media-share-helper.md @@ -2,8 +2,40 @@ ## Features +The data.grandlyon.com web portal has a functionality that let a user share articles on social media directly from the portal. It can be pretty challenging to have an appropriate preview of different pages of an Single Page Application when sharing it on social media. This service has been developed to address that problem and have a correct preview for each article. + +When Facebook's or Twitters' robots access a page, they look for [Open graph](https://ogp.me/) meta tags. Based on those tags they generate a preview of the page containing a title, a description, eventually an image... + +Here is the list of the meta tag read by the robots: + +* `og:locale`: The locale these tags are marked up in. +* `og:type`: The type of the object (ex: article, website...) +* `og:title`: The title of the object described (ex: title of the article) +* `og:description`: The description of the object (ex: abstract of the article) +* `og:image`: An image URL which should represent the object +* `og:url`: The canonical URL of your object that will be used as its permanent ID in the graph + +The problem when working with an SPA is that we serve only one `index.html` file with its own meta tags. Of course with Javascript it is possible to dynamically update the tags according to page current page of the app. A user will see the changes in its browser but a robot won't see any changes has it doesn't execute Javascript. + +The goal of this service is therefor to generate an HTML page with the right meta tags depending on the url parameter. + ## Dependencies +This service depends on [Elasticsearch](../off-the-shelf-apps/elasticsearch.md) as it is where it collects information about the articles. + ## Endpoints -## Implementation \ No newline at end of file +This service has two endpoints: + +* `/articles/:slug`: returns an HTML page with the meta tags of the article associated to the `slug` parameter +* `/`: returns an HTML page with the default meta tags of the data.grandlyon.com portal + +## Implementation + + + +The logic here, is that instead of sharing directly the url of the web app, we will share the url of our dedicated service with the slug of the current article. When the service receives the request, it reads the slug from the url and query elasticsearch in order to retrieve more information about the article. Based on the collected information, it generates a very simple empty html page with the appropriates `meta tags` and finally returns the HTML page. Thereby the robot can read the correct meta tag instead of the default ones. + +To prevent the displaying of a blank page, in case of someone access this url from a browser, the page also include the `refresh` tag. This tag tells the browser to refresh the page after a certain time (directly if not specified). Also an url can be passed along to indicate on which url the browser should refresh the page. We use this to redirect the user on the actual data.grandlyon.com page of the article. + +The root url of the service `/` will return a page with the default mata tags of data.grandlyon.com. -- GitLab