Désactiver la disponibilité du chat Facebook (Actif maintenant, actif juste maintenant, actif il y a x minutes)

15

Comment désactiver la disponibilité du chat Facebook? Ma discussion est hors ligne et j'utilise Windows 7 avec Firefox. Lorsque je me connecte avec mon autre compte via mon mobile Facebook et que j'ouvre une conversation de chat, je vois que le compte que j'utilise sur mon ordinateur est actif "en ce moment" chaque fois que je déplace la souris ou que je rafraîchis la page.

Comment désactiver cela? Y a-t-il un message de pulsation spécifique qui peut être bloqué via AdBlock Plus ou quelque chose?

un homme amoureux
la source

Réponses:

11

D'accord, j'ai trouvé la solution pour bloquer ce statut.

Fondamentalement, Facebook utilise une minuterie et il enverra donc un message de pulsation à leurs serveurs avec le temps d'inactivité toutes les x minutes.

Voici un exemple d'une telle demande Web:

https://1-edge-chat.facebook.com/pull?channel=userid&seq=0&partition=-2&clientid=18ae8ecc&cb=ie3k&idle=117&qp=y&cap=8&msgs_recv=0&uid=userid&viewer_uid=userid&msgr_region=FRC&state=offline

Si vous lisez ce lien, vous verrez que & idle = 117 est le nombre total de secondes pendant lesquelles le compte a été inactif. L' état = hors ligne indique si le chat est actif ou hors ligne

Notez que j'ai remplacé mon ID utilisateur qui est un nombre de 15 chiffres.

Donc, pour désactiver cela, ajoutez simplement la règle suivante dans vos filtres AdBlock:

https://*-edge-chat.facebook.com

Un inconvénient de cette méthode est que vous ne recevrez pas de messages en temps réel. Vous devez actualiser la page pour obtenir les messages.

un homme amoureux
la source
1
Est-ce que quelque chose comme ça fonctionnerait dans Safari avec des bloqueurs de contenu iOS 9?
0

Puisque je fournis des détails supplémentaires, j'écris ma propre réponse sur la base de l' original (au lieu de la modifier).

Oui, il existe un moyen de le faire, mais cette méthode ne fonctionne que pour Facebook et Messenger sur le Web; vous ne pouvez pas faire quelque chose de similaire pour les applications mobiles.

Fondamentalement, Facebook utilise des requêtes chronométrées côté serveur pour vérifier si le client est toujours disponible. Ainsi, le frontal (page Web Facebook chargée) enverra périodiquement une requête HTTP ( XHR ) avec le temps d'inactivité à leurs serveurs.

Voici un exemple d'une telle demande:

https://1-edge-chat.facebook.com/pull?channel=p_<UserID>&seq=0&partition=-2&clientid=18ae8ecc&cb=ie3k&idle=117&qp=y&cap=8&msgs_recv=0&uid=userid&viewer_uid=userid&msgr_region=FRC&state=offline

Remarque: j'ai remplacé l'ID utilisateur qui serait normalement un nombre.

Si vous lisez l'URL ci-dessus, vous verrez la partie disant idle = 117 . Cela indique le nombre total de secondes pendant lesquelles le compte a été inactif. L' état = hors ligne indique si le chat est activé ou désactivé.

Donc, pour désactiver cela, ajoutez simplement la règle suivante à la liste personnalisée de filtres de votre bloqueur de publicités:

||*-edge-chat.facebook.com^$xmlhttprequest

Pour désactiver sur Facebook et Messenger, vous pouvez ajouter les deux lignes suivantes:

||*-edge-chat.facebook.com^$xmlhttprequest
||*-edge-chat.messenger.com^$xmlhttprequest

Ou la ligne unique, en utilisant l' expression régulière :

/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/?/$xmlhttprequest

Quelques inconvénients de cette méthode sont que vous ne pourrez pas recevoir de messages en temps réel et que vous n'apparaîtrez pas en ligne même si le chat est activé. Vous devrez actualiser la page pour recevoir de nouveaux messages.

Afin d'éviter ces deux inconvénients, voici une solution de contournement. Vous pouvez ajouter cette ligne à la place:

/^https?\:\/\/\d+-edge-chat\.facebook\.com\/pull\?.*state=offline/$xmlhttprequest

Ou ajoutez ceci pour Facebook et Messenger:

/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/pull\?.*state=offline/$xmlhttprequest

Le résultat final de ceci sera le suivant:

  1. Lorsque votre conversation est désactivée, vous n'apparaissez pas en ligne, votre dernière activité ne sera pas signalée et vous ne pourrez pas recevoir de messages en temps réel.
  2. Lorsque votre chat est activé, vous apparaissez en ligne, votre dernière activité est signalée et vous pouvez recevoir des messages en temps réel.

Malheureusement, il ne semble pas y avoir d'autre solution puisque le front-end de Facebook ne peut récupérer des messages que lorsque le client signale périodiquement qu'ils sont actifs, d'où la récupération est effectuée une fois la dernière activité signalée. Ces deux actions sont rendues possibles par un seul script principal ( * -edge-chat.facebook.com / pull ), via la même demande; par conséquent, vous ne pouvez pas en avoir un sans l'autre.

Giorgi Gzirishvili
la source
-2

J'ai réinitialisé Chrome qui a désactivé mes extensions et fonctionne bien maintenant.

Pam Lane
la source