Отключить доступность чата Facebook (активен сейчас, активен только сейчас, активен x минут назад)

15

Как отключить доступность чата Facebook? Мой чат отключен, и я использую Windows 7 с Firefox. Когда я захожу в свою другую учетную запись через мобильный телефон Facebook и открываю беседу в чате, я вижу, что учетная запись, которую я использую на своем компьютере, активна "только сейчас", когда я перемещаю мышь или обновляю страницу.

Как мне это отключить? Есть ли какое-то конкретное сердцебиение, которое можно заблокировать через AdBlock Plus или что-то еще?

влюбленный мужчина
источник

Ответы:

11

Хорошо, я нашел решение, чтобы заблокировать этот статус.

В основном Facebook использует таймер, и поэтому он будет отправлять сообщения пульса на свои серверы с временем простоя каждые x минут.

Вот пример такого веб-запроса:

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

Если вы прочитаете эту ссылку, вы увидите, что & idle = 117 - это общее количество секунд, в течение которого аккаунт простаивал. Состояние = отсутствует означает ли активен или в автономном режиме чата

Обратите внимание, что я заменил свой идентификатор пользователя, который состоит из 15 цифр.

Поэтому, чтобы отключить это, просто добавьте следующее правило в свои фильтры AdBlock:

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

Недостатком этого метода является то, что вы не будете получать сообщения в режиме реального времени. Вы должны обновить страницу, чтобы получить сообщения.

влюбленный мужчина
источник
1
Будет ли это работать в Safari с блокировщиками контента iOS 9?
0

Поскольку я предоставляю дополнительную информацию, я пишу свой собственный ответ на основе оригинала (вместо того, чтобы редактировать его).

Да, есть способ сделать это, но этот метод работает только для веб-сайтов Facebook и Messenger; вы не можете сделать что-то подобное для мобильных приложений.

В основном Facebook использует синхронизированные запросы на стороне сервера, чтобы проверить, доступен ли клиент. Поэтому внешний интерфейс (загруженная веб-страница Facebook) будет периодически отправлять HTTP-запрос ( XHR ) со временем простоя на свои серверы.

Вот пример такого запроса:

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

Примечание: я заменил идентификатор пользователя, который обычно был бы числом.

Если вы прочтете приведенный выше URL, вы увидите часть, в которой говорится idle = 117 . Это обозначает общее количество секунд, в течение которых аккаунт простаивал. Состояние = отсутствует означает , включен ли чат или выключить.

Итак, чтобы отключить это, просто добавьте следующее правило в пользовательский список фильтров вашего рекламного блокиратора:

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

Чтобы отключить Facebook и Messenger, вы можете добавить следующие две строки:

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

Или одной строкой, используя регулярное выражение :

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

Недостатки этого метода в том, что вы не сможете получать сообщения в режиме реального времени и не будете появляться в сети, даже если чат включен. Вам придется обновить страницу, чтобы получать новые сообщения.

Чтобы избежать обоих этих недостатков, вот один из обходных путей. Вы можете добавить эту строку вместо:

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

Или добавьте это для Facebook и Messenger:

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

Конечный результат этого будет следующим:

  1. Когда ваш чат отключен, вы не будете появляться в сети, о вашей последней активности не будет сообщено, и вы не сможете получать сообщения в режиме реального времени.
  2. Когда ваш чат включен, вы появитесь в сети, о вашей последней активности будет сообщено, и вы сможете получать сообщения в режиме реального времени.

К сожалению, другого решения, похоже, не существует, поскольку клиентская часть Facebook может извлекать сообщения только тогда, когда клиент периодически сообщает, что они активны, поэтому извлечение выполняется после сообщения о последней активности. Оба эти действия становятся возможными с помощью одного внутреннего сценария ( * -edge-chat.facebook.com / pull ) по одному и тому же запросу; следовательно, вы не можете иметь одно без другого.

Георгий Гзиришвили
источник
-2

Я сбросил Chrome, который отключил мои расширения и теперь работает нормально.

Пэм Лейн
источник