Deshabilitar la disponibilidad del chat de Facebook (Activo ahora, activo ahora, activo hace x minutos)

15

¿Cómo deshabilito la disponibilidad del chat de Facebook? Mi chat está fuera de línea y estoy usando Windows 7 con Firefox. Cuando inicio sesión con mi otra cuenta a través de mi Facebook móvil y abro una conversación de chat, veo que la cuenta que uso en mi computadora está activa "justo ahora" cada vez que muevo el mouse o actualizo la página.

¿Cómo desactivo eso? ¿Hay algún mensaje de latido específico que se pueda bloquear a través de AdBlock Plus o algo así?

un hombre enamorado
fuente

Respuestas:

11

Bien, he encontrado la solución para bloquear este estado.

Básicamente, Facebook usa un temporizador y, por lo tanto, enviará un mensaje de latido a sus servidores con el tiempo de inactividad cada x minutos.

Aquí hay un ejemplo de dicha solicitud 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 lee ese enlace, verá que & idle = 117 es el total de segundos que la cuenta ha estado inactiva. El estado = desconectado significa si el chat está activo o desconectado

Tenga en cuenta que he reemplazado mi ID de usuario, que es un número de 15 dígitos.

Entonces, para deshabilitar esto, simplemente agregue la siguiente regla en sus filtros de AdBlock:

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

Un inconveniente de este método es que no recibirá mensajes en tiempo real. Debe actualizar la página para recibir los mensajes.

un hombre enamorado
fuente
1
¿Funcionaría algo así en Safari con bloqueadores de contenido de iOS 9?
0

Como estoy proporcionando detalles adicionales, estoy escribiendo mi propia respuesta basada en el original (en lugar de editarlo).

Sí, hay una manera de hacerlo, pero este método solo funciona para Facebook y Messenger basados ​​en la web; no puedes hacer algo similar para las aplicaciones móviles.

Básicamente, Facebook usa solicitudes cronometradas en el lado del servidor para verificar si el cliente todavía está disponible. Por lo tanto, el front end (página web cargada de Facebook) enviará periódicamente una solicitud HTTP ( XHR ) con el tiempo de inactividad a sus servidores.

Aquí hay un ejemplo de tal solicitud:

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: He reemplazado la ID de usuario que normalmente sería un número.

Si lee la URL anterior, verá la parte que dice inactivo = 117 . Esto denota el número total de segundos que la cuenta ha estado inactiva. El estado = sin conexión significa si el chat está activado o desactivado.

Entonces, para deshabilitar esto, simplemente agregue la siguiente regla a la lista personalizada de filtros de su bloqueador de anuncios:

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

Para deshabilitar en Facebook y Messenger, puede agregar las siguientes dos líneas:

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

O la línea única, usando expresiones regulares :

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

Algunos inconvenientes de este método son que no podrá recibir mensajes en tiempo real y no aparecerá en línea incluso si el chat está activado. Tendrá que actualizar la página para recibir nuevos mensajes.

Para evitar estos dos inconvenientes, aquí hay una solución alternativa. Puede agregar esta línea en su lugar:

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

O bien, agregue esto para Facebook y Messenger:

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

El resultado final de esto será el siguiente:

  1. Cuando su chat esté apagado, no aparecerá en línea, su última actividad no será reportada y no podrá recibir mensajes en tiempo real.
  2. Cuando su chat esté activado, aparecerá en línea, se informará su última actividad y podrá recibir mensajes en tiempo real.

Desafortunadamente, parece que no hay otra solución ya que el front-end de Facebook puede recuperar mensajes solo cuando el cliente informa periódicamente que está activo, por lo tanto, la recuperación se realiza una vez que se informa la última actividad. Ambas acciones son posibles gracias a un único script de fondo ( * -edge-chat.facebook.com / pull ), a través de la misma solicitud; por lo tanto, no puedes tener uno sin el otro.

Giorgi Gzirishvili
fuente
-2

Reinicio Chrome que deshabilitó mis extensiones y ahora funciona bien.

Pam Lane
fuente