Problème affichage tweet

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Problème affichage tweet

Message par coyote GSW Jeu 16 Fév 2023 - 8:53

Détails techniques


Version du forum : phpBB3
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Tous les utilisateurs
Problème apparu depuis : Apres le 13 février 2023
Lien du forum : https://www.galaxie-starwars.com/

Description du problème

Bonjour.
Depuis (au minimum) le 13 février, je pouvais afficher des tweets sans aucuns problèmes.
Depuis les tweets ne s'affichent plus.

Voici le code fourni par Twitter que j'utilise pour l'affichage:
Problème affichage tweet 2023_010

Voici ce que l'obtient maintenant:
Problème affichage tweet 2023_011

Et ce que j'obtenais avant:
Problème affichage tweet 2023_012

J'ai essayé ce code sans résultat.

Code:
// on attend que la page soit ouverte
$(function() {
 
  // expression régulière d'un status de twitter
  var r = /^https?:\/\/twitter\.com\/[^\/]+\/statuse?s?\/([0-9]+)$/;
  // variable qu'on utilise pour sauver quelque chose temporairement
  var n;
  // nombre de "tweet" qui étaient présent dans le cache navigateur
  var h = 0;
  // tableau qu'on utilise pour associer des liens de la page à un tweet
  var d = {};
 
  // fonction qui va traiter les liens
  var g = function(tweet_id) {
    // on teste si le tweet est dans le cache
    if(window.localStorage && (n = localStorage.getItem("status" + tweet_id))) {
      // si oui on remplace les liens de tweet par le tweet
      for(i in d[tweet_id]) {
        $(d[tweet_id][i]).replaceWith(n)
      }
      // on supprime le tweet du tableau associatif
      delete d[tweet_id];
      // on retourne 1
      return 1
    }
    // si le tweet n'est pas dans le cache, on fait une requête à l'api de tweeter pour l'avoir
    $.getJSON("https://api.twitter.com/1/statuses/oembed.json?id=" + tweet_id + "&omit_script=true&lang=fr&callback=?", function(data) {
      // on teste si il y a bien un champ "html" dans le contenu renvoyé par l'api tweeter ( si pas y'aurait une erreur et le lien de tweet ne serait pas remplacé )
      if("html" in data) {
        // on ajoute le tweet dans le cache du navigateur
        localStorage && localStorage.setItem("status" + tweet_id, data["html"]);
        // on remplace les liens de tweet par le tweet
        for(i in d[tweet_id]) {
          $(d[tweet_id][i]).replaceWith(data["html"])
        }
        // on supprime le tweet du tableau associatif
        delete d[tweet_id];
        // on ajoute le script de twitter qui donnera l'apparence au tweet
        $.getScript("http://platform.twitter.com/widgets.js")
      }
      return 0
    })
  };
  // on boucle sur chaque lien de la page
  $("a").each(function() {
    // si le lien n'est pas vers un tweet, ou que le texte n'est pas égal au lien on ne fait rien
    if(!r.test($(this).attr("href")) || $(this).attr("href") != $(this).html()) {
      return
    }
    // on récupère de l'adresse le numéro du tweet
    n = $(this).attr("href").match(r)[1];
    // on teste si on est déjà en train de traiter le tweet
    if(n in d) {
      // si oui, on ajoute le lien de tweet dans le tableau des liens de ce tweet
      d[n].push(this)
    }else {
      // sinon, on ajoute un tableau de lien de ce tweet ( dans lequel on place le lien sur lequel on est
      d[n] = [ this ];
      // et on fait appel à la fonction de remplacement de tweet
      h += g(n)
    }
  });
  // si il y a au moins un tweet remplacé qui était dans le cache de navigateur
  if(h) {
    // on ajoute le script de tweeter qui donnera l'apparence au tweet
    $.getScript("http://platform.twitter.com/widgets.js")
  }
});
---------------------------------------------
Je précise que tous les tweets de s'affichent plus sur mon forum.
Twitter a t il changer quelque chose ?

Merci pour votre aide.


Dernière édition par coyote GSW le Jeu 16 Fév 2023 - 20:17, édité 3 fois (Raison : Code placé sous balises code)
coyote GSW

coyote GSW
Nouveau membre

Messages : 6
Inscrit(e) le : 14/02/2023

https://www.galaxie-starwars.com/
coyote GSW a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème affichage tweet

Message par Toryudo Jeu 16 Fév 2023 - 12:37

Bonjour !
J'ai du mal à le faire fonctionner par script aussi, donc vous allez plutôt ajouter l'information du script à charger directement dans le template overall_header.
Vous allez dans le Template overall_header, vous cherchez la ligne où est écrit </head> et juste au-dessus de cette ligne, vous créez une ligne avec ce contenu :
Code:
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Vous enregistrez, vous validez (voir le tuto sur la gestion des Template si besoin : https://forum.forumactif.com/t239497-modifier-les-templates-de-votre-forum) et normalement, l'affichage des tweet redeviendra propre.
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1384
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème affichage tweet

Message par coyote GSW Jeu 16 Fév 2023 - 20:16

Tadaammmm !!!!
Ca (re) fonctionne.
Problème affichage tweet 2023_010

Merci beaucoup Toryudo; cheers Yes ok
coyote GSW

coyote GSW
Nouveau membre

Messages : 6
Inscrit(e) le : 14/02/2023

https://www.galaxie-starwars.com/
coyote GSW a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum