Deaktiviere die Verfügbarkeit von Facebook-Chats (Aktiv jetzt, aktiv gerade jetzt, aktiv vor x Minuten)


15

Wie deaktiviere ich die Verfügbarkeit von Facebook-Chats? Mein Chat ist offline und ich verwende Windows 7 mit Firefox. Wenn ich mich mit meinem anderen Konto über mein mobiles Facebook anmelde und eine Chat-Unterhaltung eröffne, wird das Konto, das ich auf meinem Computer verwende, "gerade jetzt" aktiv, wenn ich die Maus bewege oder die Seite aktualisiere.

Wie deaktiviere ich das? Gibt es eine bestimmte Heartbeat-Nachricht, die möglicherweise über AdBlock Plus blockiert wird?

Antworten:


11

Okay, ich habe die Lösung gefunden, um diesen Status zu blockieren.

Grundsätzlich verwendet Facebook einen Timer und sendet daher alle x Minuten eine Heartbeat-Nachricht mit der Leerlaufzeit an die Server.

Hier ist ein Beispiel für eine solche Webanfrage:

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

Wenn Sie diesen Link lesen, sehen Sie, dass & idle = 117 die Gesamtsekunden sind, für die das Konto inaktiv war. Der Status = offline steht dafür, ob der Chat aktiv oder offline ist

Beachten Sie, dass ich meine Benutzer-ID ersetzt habe, die aus 15 Ziffern besteht.

Um dies zu deaktivieren, fügen Sie einfach die folgende Regel in Ihre AdBlock-Filter ein:

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

Ein Nachteil dieser Methode ist, dass Sie keine Nachrichten in Echtzeit erhalten. Sie müssen die Seite aktualisieren, um die Nachrichten zu erhalten.


1
Funktioniert so etwas in Safari mit iOS 9-Inhaltsblockern?

0

Da ich zusätzliche Details zur Verfügung stelle, schreibe ich meine eigene Antwort basierend auf dem Original (anstatt es zu bearbeiten).

Ja, es gibt eine Möglichkeit, dies zu tun, aber diese Methode funktioniert nur für das webbasierte Facebook und den Messenger. Ähnliches können Sie für die mobilen Apps nicht tun.

Grundsätzlich verwendet Facebook zeitgesteuerte Anfragen auf der Serverseite, um zu überprüfen, ob der Client noch verfügbar ist. Das Front-End (geladene Facebook-Webseite) sendet daher regelmäßig eine HTTP-Anfrage ( XHR ) mit der Leerlaufzeit an ihre Server.

Hier ist ein Beispiel für eine solche Anfrage:

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

Hinweis: Ich habe die Benutzer-ID ersetzt, die normalerweise eine Nummer ist.

Wenn Sie die obige URL lesen, wird der Teil idle = 117 angezeigt . Dies gibt die Gesamtanzahl der Sekunden an, für die das Konto inaktiv war. Der Zustand = offline steht dafür, ob der Chat ein- oder ausgeschaltet ist.

Um dies zu deaktivieren, fügen Sie einfach die folgende Regel zur benutzerdefinierten Filterliste Ihres Werbeblockers hinzu:

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

Um Facebook und Messenger zu deaktivieren, können Sie die folgenden zwei Zeilen hinzufügen:

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

Oder die einzelne Zeile mit Regex :

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

Einige Nachteile dieser Methode sind, dass Sie keine Nachrichten in Echtzeit empfangen können und auch dann nicht online angezeigt werden, wenn der Chat aktiv ist. Sie müssen die Seite aktualisieren, um neue Nachrichten zu erhalten.

Um diese beiden Nachteile zu vermeiden, gibt es eine Problemumgehung. Sie können stattdessen diese Zeile hinzufügen:

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

Oder fügen Sie dies für Facebook und Messenger hinzu:

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

Das Endergebnis davon wird das folgende sein:

  1. Wenn Ihr Chat deaktiviert ist, werden Sie nicht online angezeigt, Ihre letzte Aktivität wird nicht gemeldet und Sie können keine Nachrichten in Echtzeit empfangen.
  2. Wenn Ihr Chat aktiviert ist, werden Sie online angezeigt, Ihre letzte Aktivität wird gemeldet und Sie können Nachrichten in Echtzeit empfangen.

Leider scheint es keine andere Lösung zu geben, da das Front-End von Facebook Nachrichten nur abrufen kann, wenn der Client regelmäßig meldet, dass sie aktiv sind. Daher erfolgt der Abruf, sobald die letzte Aktivität gemeldet wurde. Beide Aktionen werden durch ein einziges Back-End-Skript ( * -edge-chat.facebook.com / pull ) auf dieselbe Anforderung hin ermöglicht. deshalb kann man eins nicht ohne das andere haben.


-2

Ich habe Chrome zurückgesetzt, wodurch meine Erweiterungen deaktiviert wurden und jetzt einwandfrei funktionieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.