Workplace from Meta va bientôt disparaître. Vous pourrez continuer d’utiliser Workplace jusqu’au 31 août 2025. Consultez nos pages d’aide pour en savoir plus.
Les aperçus authentifiés garantissent l’affichage correct de l’aperçu de votre contenu sur Workplace. Cela implique de prendre en charge des métadonnées d’aperçu authentifié dans un format reconnu par Workplace, pour que lors du partage des URL de votre contenu, Workplace puisse extraire ces métadonnées et créer un aperçu. Ce processus est souvent désigné sous le terme de déploiement de liens.
Si Facebook peut obtenir les métadonnées pour déployer une URL publique via le protocole Open Graph et le robot d’indexation Facebook, ce processus est impossible pour les URL privées qui sont plus fréquemment partagées dans Workplace. Lorsqu’une personne partage une URL privée dans Workplace, un webhook est généré vers une URL de rappel que vous définissez. Vous êtes alors en mesure de répondre avec une charge utile de métadonnées décrivant l’URL pour la personne qui la partage, de manière à afficher un aperçu du lien.

Le même processus se répète pour chaque personne visualisant l’URL partagée sur Workplace, ce qui vous offre la possibilité de contrôler la visibilité des aperçus par utilisateur.
Les aperçus authentifiés pour Workplace permettent aux personnes de partager des informations sur Workplace facilement et en toute sécurité, dans le respect de la confidentialité du contenu source. En prenant en charge les aperçus authentifiés, vous avez l’assurance que les aperçus de vos contenus s’affichent correctement sur Workplace, de manière sécurisée et respectueuse de la confidentialité.
Sur Workplace, les utilisateurs partagent souvent des liens vers des ressources d’entreprise internes, que seules certaines personnes peuvent consulter. Sur Facebook, au contraire, les utilisateurs partagent fréquemment du contenu public, comme des articles de presse ou des publications de blog.

Pour permettre à Workplace de générer l’aperçu d’un contenu d’entreprise privé, il convient de lui fournir certaines métadonnées. En tant que fournisseur, vous pouvez choisir de fournir ou non les métadonnées pour la personne qui consulte Workplace, selon qu’elle est ou non autorisée à visualiser le contenu.
Ce document présente les composants requis pour l’activation des aperçus authentifiés, à savoir :
Pour activer les aperçus authentifiés, vous devez configurer votre application comme suit :
Nous envoyons une requête au fournisseur dans différentes situations :
Dans tous ces cas de figure, un webhook est envoyé sous la forme d’une requête POST au format suivant :
{
"object": "link",
"entry": [
{
"time": int,
"changes": [
{
"field": "preview",
"value": {
"community": {
"id": string,
},
"user": {
"id": string,
},
"link": string,
}
}
]
}
]
}
Cette charge utile contient les champs suivants :
| Nom du champ | Description |
|---|---|
| Sujet du webhook. C’est toujours |
| Liste de requêtes, toujours exactement égale à un. |
| Heure d’envoi de la requête. |
| Liste de modifications dans cette requête, toujours exactement égale à un. |
| Champ de webhook, toujours défini sur |
| Objet réel contenant le contexte de la requête. |
| Communauté de l’utilisateur ayant déclenché la requête. |
| Utilisateur ayant déclenché la requête. |
| Lien que Workplace essaie d’afficher, et qui correspond au domaine et à l’expression régulière configurés par l’application. |
POST /callback HTTP/1.1
Host: third-party.com
Accept: application/json
Content-Type: application/json
User-Agent: Webhooks/1.0 (https://fb.me/webhooks)
X-Hub-Signature: sha1=bf3102e52efd0fd4bd26277030aa180d7b5cf587
...
{
"object": "link",
"entry": [{
"time": 1501515097793,
"changes": [{
"field": "preview",
"value": {
"community": {
"id": "138169208138649"
},
"user": {
"id": "88575656148087"
}
"link": "https://company.third-party.com/document-about-this"
}
}]
}]
}
Lorsque vous recevez une requête de webhook, vous devez fournir une charge utile de métadonnées dans un format de réponse spécifique :
{
"data": [
{
"link": string,
?"canonical_link": string,
?"title": string,
?"description": string,
?"icon": string,
?"download_url": string,
"privacy": 'organization' | 'accessible' | 'inaccessible',
?"type": 'document' | 'folder' | 'task' | 'link',
?"additional_data": [
{
"title" => string,
"format" => 'text' | 'date' | 'datetime' | 'user',
"value" => string | number,
?"color" => 'blue' | 'green' | 'yellow' | 'orange' | 'red',
},
],
}
],
?"linked_user": boolean
}Cette charge utile doit contenir les champs suivants :
| Nom du champ | Description |
|---|---|
| Collection d’éléments disponibles pour l’utilisateur. Ce champ peut être vide si l’application choisit de ne pas déployer du tout ce lien pour l’utilisateur. |
| Champ booléen indiquant si le tiers détecte l’utilisateur. Si ce champ présente la valeur |
| Lien d’identification unique pour cet élément. Il doit correspondre au lien dans la requête. |
| Représentation url canonique de ce contenu. S’il diffère du lien, ce contenu est associé au contenu canonique pour faciliter l’interrogation des partages associés. |
| Titre de cet élément obligatoire, sauf pour les éléments dont le champ de confidentialité est défini comme inaccessible. |
| Brève description de l’élément qui s’affichera dans l’aperçu détaillé. |
| Élément de ce contenu relatif aux emplacements dans lesquels Workplace présente une icône du contenu. Il doit s’agir d’une URL accessible au public. Pour optimiser les résultats, cet élément doit correspondre à un carré de 16 pixels. |
| URL depuis laquelle Workplace peut télécharger une représentation PDF, JPEG ou PNG de l’élément pour le convertir en publication d’image. Ce champ est ignoré pour tous les types d’objets, à l’exception des types |
| Indique la confidentialité de l’objet. Ce champ peut prendre la valeur |
| Ce champ peut présenter la valeur |
| Collection de métadonnées qui s’afficheront dans l’aperçu détaillé. Ce champ est ignoré pour les types d’objets |

HTTP/1.1 200 OK
Content-Type: application/json
X-Hub-Signature: sha1=b5a6f32f084100ae5b355174b9bb8398f5fbe983
...
{
"data": [
{
"link": "https://taaskly.herokuapp.com/task/4",
"title": "Launch Workplace Integration for F8",
"privacy": "organization",
"type": "task",
"additional_data": [
{
"title": "Owner",
"format": "user",
"value": "319922278498384"
},
{
"title": "Created",
"format": "datetime",
"value": "2018-02-28T03:35:40.827Z"
},
{
"title": "Priority",
"format": "text",
"value": "high",
"color": "red"
}
]
}
],
"linked_user": true
}
Le mode de confidentialité détermine la visibilité, qui indique si nous exigeons ou non l’authentification de l’utilisateur actuel et des utilisateurs suivants.
organization : contenu visible par l’utilisateur, aucune authentification des utilisateurs requiseaccessible : contenu visible par l’utilisateur actuel, mais un mappage d’identité d’utilisateur peut être requis pour les autres personnesinaccessible : contenu non visible par l’utilisateurSi vous souhaitez ajouter d’autres informations sur l’aperçu d’un lien, vous pouvez envoyer jusqu’à trois éléments de données supplémentaires. Un élément de données supplémentaires comporte un ensemble d’éléments de valeurs clés. Mais la valeur peut présenter différents formats.
Pour l’instant, quatre formats sont pris en charge :
text : affiche la valeur telle quelle. La valeur doit être une chaîne. Dans le cas de ce format, les données supplémentaires peuvent également comporter une propriété color, qui doit présenter la valeur blue, green, yellow, orange ou red. Si cette propriété est indiquée, ce format affiche la valeur en utilisant cette couleur en arrière-plan.date : analyse la valeur en tant que format de date ISO-8601 sans heure et l’affiche sans indication d’heure.datetime : analyse la valeur en tant que format de date ISO-8601 avec heure et fuseau horaire, et l’affiche avec indication d’heure dans le fuseau horaire des utilisateurs.user : analyse la valeur en tant qu’identifiant utilisateur et affiche le nom de l’utilisateur.Si des données supplémentaires sont définies, le paramètre download_url est ignoré.
Si le mode de confidentialité de votre document présente la valeur organization ou accessible, et qu’une URL de téléchargement est fournie, nous envoyons une requête supplémentaire concernant le téléchargement des données.
GET /download/super-fancy-document HTTP/1.1 Host: provider.com Accept: <some mime types> User-Agent: Webhooks/1.0 (https://fb.me/webhooks) X-Hub-Signature: sha1=bf3102e52efd0fd4bd26277030aa180d7b5cf587
Workplace convertira alors ce fichier en photos pour en générer une publication contenant plusieurs photos.
Comme indiqué ci-dessus, la fourniture d’aperçus authentifiés requiert un mappage d’identité. Le mappage d’identité détermine si un utilisateur Workplace est autorisé à consulter le contenu dont l’aperçu s’affiche, et garantit le respect des règles d’accès de votre contenu sur Workplace.
La forme de mappage d’identité la plus simple est le mappage à l’échelle de l’organisation, pour lequel il suffit d’appartenir à une communauté Workplace pour autoriser la présentation des aperçus aux utilisateurs sur Workplace. Ce scénario est courant en cas d’affichage de l’aperçu des liens dans un intranet d’entreprise, ou dans un service dans lequel tous les objets (ou au moins leurs métadonnées) sont visibles par la totalité de l’entreprise.
Lorsque votre intégration est installée sur une communauté Workplace, vous pouvez vérifier l’ID de communauté via le point de terminaison /community, à l’aide du token d’accès que vous avez récupéré lors de l’installation. Vous pouvez stocker cet ID de communauté avec le token, et le mapper sur un identifiant de locataire ou d’organisation dans votre service. Cette opération crée un mappage entre une communauté Workplace et l’organisation dans votre service.
Par la suite, lorsque vous répondez aux requêtes de webhook d’aperçu authentifié, vous pouvez vérifier que l’ID de communauté de la charge utile du webhook correspond à l’ID de communauté associé à l’organisation. Cela vous permet alors de décider si vous pouvez renvoyer une charge utile de métadonnées en toute sécurité. La définition de la confidentialité de cette charge utile sur la valeur ORGANIZATION nous évite d’avoir à envoyer des webhooks supplémentaires pour chaque utilisateur de cette communauté Workplace.
Si vous avez besoin d’autorisations plus granulaires, vous pouvez prendre en charge un mappage par utilisateur ; cela vous permet d’afficher ou non les métadonnées pour chacune des personnes qui consulte du contenu sur Workplace. Workplace envoie un identifiant utilisateur dans chaque charge utile de webhook pour les aperçus authentifiés. Pour prendre en charge le mappage par utilisateur, vous devez savoir à quelle entrée utilisateur de votre système correspond l’identifiant utilisateur Workplace envoyé dans la charge utile de webhook.
Si vous rencontrez un identifiant utilisateur Workplace donné pour la première fois, vous pouvez répondre en définissant le champ linked_user sur false. Workplace sera chargé d’afficher un bouton Activer l’aperçu qui invite l’utilisateur à associer son compte.

Lorsque ce bouton est sélectionné, Workplace affiche une boîte de dialogue d’un point de terminaison d’association de compte que vous définissez, et qui vous permet de valider la session utilisateur dans votre service. Workplace ouvre cette URL via une requête POST et transmet un paramètre de requête signé, qui contient l’identifiant utilisateur et l’ID de communauté actuels.
POST https://www.example.com/account_linking?redirect_uri=https%3A%2F%2Ffoxfabrics.facebook.com%2Flink_complete HTTP/1.1
Host: foxfabrics.third-party.com
Origin: http://www.facebook.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/57.0
...
signed_request=238fsdfsd.oijdoifjsidf899
La charge utile comporte un paramètre signed_request qui contient des informations sur cet utilisateur. Cette requête peut être décodée comme suit :
La charge utile contient les champs suivants :
{
"algorithm": "HMAC-SHA256",
"user_id": "88575656148087",
"community_id": "138169208138649"
}
À ce stade, vous disposez d’un ID utilisateur et d’un ID de communauté Workplace, ainsi que d’une session utilisateur validée dans votre service, et vous êtes en mesure d’enregistrer l’ID Workplace de cet utilisateur à côté de son identifiant dans votre service. Une fois cette opération effectuée, vous devez inclure une redirection vers l’URL fournie dans la requête initiale en tant que paramètre de requête redirect_uri.
GET {$redirect_uri} HTTP/1.1
Host: foxfabrics.facebook.com
User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/57.0
Referer: https://www.example.com/account_linking
...
Workplace détecte alors que le mappage d’identité est terminé, et tente de redemander les métadonnées d’aperçu authentifié. Cette fois-ci, vous êtes en mesure de répondre en définissant le champ linked_user sur true, et vous pouvez fournir les métadonnées requises.
Cet aller-retour complet ne doit se produire qu’une seule fois pour chaque utilisateur non reconnu tentant d’afficher l’aperçu d’un contenu pour la première fois. Dès que le mappage d’identité est terminé, les aperçus ultérieurs sont normalement en mesure de contourner cet aller-retour.
No, Workplace Authenticated Previews do not have the same performance requirements or unsubscribe behavior as Messenger Platform webhooks.
So that people using Workplace have a good experience, the full HTTP roundtrip should take less than 5 seconds as measured from the Workplace side (i.e., the HTTP client side).
No, these requests are one-time only.
For estimating / expectation standpoint you can plan around this behavior. You may observe some differences in practice due to retries or race conditions.
No, Workplace will not automatically disable a link webhooks subscription.