Вимкнути доступ до чату у Facebook (Активні зараз, активні просто зараз, активні х хвилин тому)


15

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

Як це відключити? Чи є якесь певне повідомлення про серцебиття, яке можна заблокувати через AdBlock Plus чи щось таке?

Відповіді:


11

Гаразд, я знайшов рішення заблокувати цей статус.

В основному Facebook використовує таймер, і тому він надсилатиме серцебиття повідомлення на їх сервери з простоєм кожні х хвилин.

Ось приклад такого веб-запиту:

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 - це загальна кількість секунд, на яку обліковий запис був у режимі очікування. Стан = Нікому означає активний або в автономному режимі чату

Зауважте, що я замінив свій userid, який становить 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-адресу вище, ви побачите частину, що говорить у режимі очікування = 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 ) за допомогою одного запиту; отже, ви не можете мати одне без іншого.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.