Disabilita la disponibilità della chat di Facebook (Attivo ora, attivo solo ora, attivo x minuti fa)


15

Come disabilitare la disponibilità della chat di Facebook? La mia chat non è in linea e sto usando Windows 7 con Firefox. Quando eseguo l'accesso con un altro account tramite Facebook mobile e apro una conversazione di chat, vedo che l'account che utilizzo sul mio computer è attivo "proprio ora" ogni volta che muovo il mouse o aggiorno la pagina.

Come lo disabilito? Esiste un messaggio heartbeat specifico che è possibile bloccare tramite AdBlock Plus o qualcosa del genere?

Risposte:


11

Va bene ho trovato la soluzione per bloccare questo stato.

Fondamentalmente Facebook utilizza un timer e quindi invierà un messaggio di battito cardiaco ai loro server con il tempo di inattività ogni x minuti.

Ecco un esempio di tale richiesta 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

Se leggi quel link vedrai che & idle = 117 è il totale dei secondi per cui l'account è stato inattivo. Lo Stato = non in linea si distingue per la chat se è attivo o non in linea

Nota che ho sostituito il mio userid che è un numero di 15 cifre.

Quindi per disabilitarlo basta aggiungere la seguente regola nei filtri AdBlock:

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

Uno svantaggio di questo metodo è che non riceverai messaggi in tempo reale. È necessario aggiornare la pagina per ottenere i messaggi.


1
Qualcosa del genere funzionerebbe in Safari con i blocchi di contenuti per iOS 9?

0

Dal momento che sto fornendo ulteriori dettagli, sto scrivendo la mia risposta basata sull'originale (invece di modificarlo).

Sì, c'è un modo per farlo, ma questo metodo funziona solo per Facebook e Messenger basati sul web; non puoi fare qualcosa di simile per le app mobili.

Fondamentalmente, Facebook utilizza le richieste a tempo sul lato server per verificare se il client è ancora disponibile. Quindi il front-end (pagina Web di Facebook caricata) invierà periodicamente una richiesta HTTP ( XHR ) con il tempo di inattività ai propri server.

Ecco un esempio di tale richiesta:

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

Nota: ho sostituito l'ID utente che normalmente sarebbe un numero.

Se leggi l'URL sopra, vedrai la parte che dice inattivo = 117 . Questo indica il numero totale di secondi per cui l'account è stato inattivo. Lo Stato = offline sta per se la chat viene acceso o spento.

Pertanto, per disabilitarlo, aggiungi la seguente regola all'elenco personalizzato di filtri del blocco annunci:

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

Per disabilitare su entrambi, Facebook e Messenger, è possibile aggiungere le seguenti due righe:

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

O la linea singola, usando regex :

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

Alcuni svantaggi di questo metodo sono che non sarai in grado di ricevere messaggi in tempo reale e non comparirai online anche se la chat è attiva. Dovrai aggiornare la pagina per ricevere nuovi messaggi.

Per evitare entrambi questi inconvenienti, ecco una soluzione alternativa. Puoi invece aggiungere questa riga:

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

Oppure aggiungi questo sia per Facebook che per Messenger:

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

Il risultato finale di questo sarà il seguente:

  1. Quando la chat è disattivata, non comparirai online, la tua ultima attività non verrà segnalata e non sarai in grado di ricevere messaggi in tempo reale.
  2. Quando la chat è attiva, apparirai online, verrà segnalata la tua ultima attività e sarai in grado di ricevere messaggi in tempo reale.

Sfortunatamente, non sembra esserci altra soluzione poiché il front-end di Facebook può recuperare i messaggi solo quando il client segnala periodicamente che sono attivi, quindi il recupero viene eseguito una volta che viene segnalata l'ultima attività. Entrambe queste azioni sono rese possibili da un unico script back-end ( * -edge-chat.facebook.com / pull ), attraverso la stessa richiesta; pertanto, non puoi averne uno senza l'altro.


-2

Ho ripristinato Chrome che ha disabilitato le mie estensioni e funziona bene ora.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.