{"id":3489,"date":"2017-01-02T12:34:17","date_gmt":"2017-01-02T11:34:17","guid":{"rendered":"http:\/\/iamwcew.fr.oracle.com\/blog\/?p=3489"},"modified":"2017-01-02T12:34:17","modified_gmt":"2017-01-02T11:34:17","slug":"account-linking-avec-facebook-messenger","status":"publish","type":"post","link":"https:\/\/gpmfactory.com\/index.php\/2017\/01\/02\/account-linking-avec-facebook-messenger\/","title":{"rendered":"Account Linking avec Facebook Messenger"},"content":{"rendered":"<p>Facebook Messenger propose la possibilit\u00e9 d&rsquo;associer le compte FB Messenger avec celui d&rsquo;une entreprise. Cette fonctionnalit\u00e9 est appel\u00e9e <a href=\"https:\/\/developers.facebook.com\/docs\/messenger-platform\/account-linking\"><em>Account Linking<\/em><\/a>.<\/p>\n<p>L&rsquo;association de compte est particuli\u00e8rement int\u00e9ressante lors de la r\u00e9alisation d&rsquo;un chatbot de type RH, par exemple.<br \/>\nPrenons un exemple o\u00f9 l\u2019entreprise Vision souhaite proposer quelques fonctions RH en self-service via Facebook Messenger.<\/p>\n<p>Julien Dupont poss\u00e8de un compte FB Messenger et s&rsquo;authentifie aupr\u00e8s de FBM avec son compte julien.dupont@orange.fr \/ Password.<\/p>\n<p>Julien Dupont est \u00e9galement un employ\u00e9 de la soci\u00e9t\u00e9 Vision. Son id SSO est : j.dupont@vision.com.<\/p>\n<p>La soci\u00e9t\u00e9 Vision cr\u00e9e un chatbot qui r\u00e9pondra \u00e0 des questions simples sur le domaine RH, et fournira, par exemple, le <strong>solde de cong\u00e9s<\/strong> pour ses employ\u00e9s. Il faut que le service de Chatbot soit en mesure de reconna\u00eetre que le user julien.dupont qui interagit avec lui est <strong>\u00e9galement l&#8217;employ\u00e9<\/strong> j.dupont. C&rsquo;est ici qu&rsquo;intervient la notion <em>d&rsquo;Account Linking<\/em>. Le SDK de FBM permet de d\u00e9clencher une phase d&rsquo;authentification avec le serveur de l\u2019entreprise, puis de r\u00e9cup\u00e9rer un jeton (<em>autorization_code<\/em>) que le chatbot pr\u00e9sentera ult\u00e9rieurement au service RH de calcul du solde de cong\u00e9s.<\/p>\n<p><a href=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/Account-Linking-FB_01.jpg\">Le diagramme ci-dessous r\u00e9sume la cin\u00e9matique de l&rsquo;association de compte:<\/a><\/p>\n<p><a href=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/Account-Linking-FB_01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3490 \" src=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/Account-Linking-FB_01-739x1024.jpg\" width=\"597\" height=\"828\" \/><\/a><\/p>\n<p>Voici comment se pr\u00e9sentent les diff\u00e9rents \u00e9crans g\u00e9n\u00e9r\u00e9s par FBM:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/IMG_1604.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3493\" src=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/IMG_1604-169x300.png\" alt=\"\" width=\"169\" height=\"300\" \/><\/a> <a href=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/IMG_1603.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3496\" src=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/IMG_1603-169x300.png\" alt=\"\" width=\"169\" height=\"300\" \/><\/a><a href=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/IMG_1602.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3495\" src=\"http:\/\/iamwcew.fr.oracle.com\/blog\/wp-content\/uploads\/2017\/01\/IMG_1602-169x300.png\" alt=\"\" width=\"169\" height=\"300\" \/><\/a><\/p>\n<ul>\n<li>Le premier panel est affich\u00e9 \u00e0 la suite d&rsquo;une demande d&rsquo;Account linking d\u00e9clench\u00e9e depuis le code du chatbot. Le message qui commence par &lsquo;Account linking !&rsquo; n&rsquo;est juste qu&rsquo;un message de debug pour afficher les r\u00e9sultat de l\u2019association de compte.<\/li>\n<\/ul>\n<p style=\"padding-left: 30px;\">Le payload est de la forme suivante:<\/p>\n<pre style=\"padding-left: 60px;\">var messageData={\n \"attachment\": {\n \"type\": \"template\",\n \"payload\": {\n \"template_type\": \"generic\",\n \"elements\": [{\n \"title\": \"Bienvenue \u00e0 Vision RH\",\n \"image_url\": \"http:\/\/&lt;image quelconque.jpeg&gt;\",\n \"buttons\": [{\n \"type\": \"<strong>account_link<\/strong>\",\n \"url\": \"https:\/\/&lt;serveur Vision&gt;\/authorize\"\n }]\n }]\n }\n } \n }<\/pre>\n<ul>\n<li>Le second panel est affich\u00e9 lorsque le serveur de l\u2019entreprise Vision redirige vers FB avec un authorization_code. Il intervient apr\u00e8s la redirection vers le serveur d&rsquo;authentification de Vision.<\/li>\n<li>Le troisi\u00e8me panel est affich\u00e9 lorsque l&rsquo;utilisateur clique sur le bouton Logout, lui-m\u00eame d\u00e9clench\u00e9 depuis le code du chatbot avec le payload suivant:<\/li>\n<\/ul>\n<pre style=\"padding-left: 60px;\">messageData={\n \"attachment\": {\n \"type\": \"template\",\n \"payload\": {\n \"template_type\": \"generic\",\n \"elements\": [{\n \"title\": \"Vision RH\",\n \"image_url\": \"http:\/\/&lt;image quelconque.jpeg&gt;\",\n \"buttons\": [{\n \"type\": \"<strong>account_unlink<\/strong>\"\n }]\n }]\n }\n } \n }<\/pre>\n<p>Dans le code du chatbot, on r\u00e9cup\u00e8re le PSID (recipient.id) ainsi que le token d&rsquo;acc\u00e8s (authorization_code) en traitant les <a href=\"https:\/\/developers.facebook.com\/docs\/messenger-platform\/webhook-reference\">messages Webhook<\/a> de type account_linking. C&rsquo;est \u00e0 partir de ce moment que le code du chatbot peut interagir avec un service de Vision en lui fournissant le <a href=\"https:\/\/developers.facebook.com\/docs\/messenger-platform\/webhook-reference\/account-linking\">token d&rsquo;acc\u00e8s ainsi que le PSID<\/a> qui repr\u00e9sente le couple unique user FB\/Page.<\/p>\n<h3>Conclusion<\/h3>\n<p>On peut utiliser le canal de Facebook Messenger pour interagir de fa\u00e7on authentifi\u00e9 avec un serveur d&rsquo;enterprise.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Facebook Messenger propose la possibilit\u00e9 d&rsquo;associer le compte FB Messenger avec celui d&rsquo;une entreprise. Cette fonctionnalit\u00e9 est appel\u00e9e Account Linking. L&rsquo;association de compte est&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,22,10,11],"tags":[],"ppma_author":[150],"class_list":["post-3489","post","type-post","status-publish","format-standard","hentry","category-dev","category-francais","category-notes","category-paas"],"authors":[{"term_id":150,"user_id":1,"is_guest":0,"slug":"admin8700","display_name":"Patrick","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/209d5ed69b74d288390621ab4c1d3773?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/3489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/comments?post=3489"}],"version-history":[{"count":0,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/3489\/revisions"}],"wp:attachment":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/media?parent=3489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/categories?post=3489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/tags?post=3489"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/ppma_author?post=3489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}