Réparer le partage sur Facebook (Gestion:Tâches/Liste/48)

De Wikimedica
Réparer le partage sur Facebook [Réalisée]  Modifier cette tâche Aide
TypeBogue
CréationAntoine Mercier-Linteau
Responsable(s)Antoine Mercier-Linteau
ÉtatRéalisée
Date de création2017/12/05
Échéanceaucune
PrioritéUrgente
Projet(s)
<noinclude>
</noinclude>

Le partage de liens venant de Wikimedica sur Facebook renvoie parfois à une page intitulée "Mauvais titre". À investiguer, mais c'est probablement un problème avec le fait que le wiki soit privé.


Créer une sous-tâche
Aucune sous-tâche à afficher.
Aucune sous-tâche assignée à cette tâche.
Sous-tâches
- Type Priorité Titre Responsable(s) État Création
Voir les sous-tâches terminées...

Discussion

Le code dans LocalSettings.php utilisait à l'origine la détection d'IP pour savoir si la requête venait de Facebook et ainsi lui donner un accès lecture au wiki. Comme le range d'ips semble avoir changé, le système a brisé.

Je l'ai remplacé par

strpos($_SERVER["HTTP_USER_AGENT"], "facebookexternalhit/") !== false || // Allow access to Facebook's crawler.
strpos($_SERVER["HTTP_USER_AGENT"], "Facebot") !== false || // Allow access to Facebook's crawler.

C'est moins sécuritaire et très facilement spoofable, mais il n'y a rien de sensible sur le wiki. Antoine Mercier-Linteau (discussion) 10 décembre 2017 à 11:44 (EST)



L'image fonctionne bien, mais le résumé de l'article n'est pas correctement interprété. Par exemple, lorsque Modèle:Information concept est présent, Facebook ramasse les balises HTML du tableau. Antoine Mercier-Linteau (discussion) 25 décembre 2017 à 09:12 (EST)

Finalement, c'était le CSS en ligne dans le modèle Modèle:Information concept qui interférait avec la génération du tag meta description. J'ai réglé problème en utilisant l'extension CSS. Antoine Mercier-Linteau (discussion) 26 décembre 2017 à 03:02 (EST)
L'extension CSS est incompatible avec le ResourceLoader et brise javascript. Finalement, le code CSS d'Information concept a été déplacé à Mediawiki:Common.css. Antoine Mercier-Linteau (discussion) 26 décembre 2017 à 03:15 (EST)


Le partage est encore défectueux, cette fois je pense, c'est la génération d'images. Facebook demande à ce que la vignette soit d'une certaine taille, mais l'extension ne lui en fournit une que de taille minimale. C'est probablement au niveau du code de génération de la vignette dans l'extension que le problème se situe. Antoine Mercier-Linteau (discussion) 13 janvier 2018 à 13:47 (EST)

Sur les pages de spécialité, où la vignette est affichée, la balise og:image est correctement réglée. Sur les pages de cours, où il n'y pas d'image (ex: <div style="display:none">{{#setmainimage:Système respiratoire (schéma).svg}}</div>) et il n'y a pas de génération de vignette, le url de la balise og:image pointe vers une vignette trop petite. C'est étrange mais bon, c'est effectivement le code de génération de la vignette qui est à corriger dans l'extension car il est réglé à 300x100. J'ai créé un bug sur Phabricator et ai corrigé le code à la main sur le serveur pour que les vignettes fassent 1200x630, la taille recommandée par Facebook. Antoine Mercier-Linteau (discussion) 6 mai 2018 à 11:58 (EDT)