回答:
さて、このステータスをブロックするソリューションを見つけました。
基本的に、Facebookはタイマーを使用するため、x分ごとにアイドル時間を使用してハートビートメッセージをサーバーに送信します。
そのような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
このリンクを読むと、&idle = 117がアカウントがアイドル状態になっていた合計秒数であることがわかります。状態=オフラインでのチャットがアクティブまたはオフラインであるかどうかを表します
15桁のユーザーIDを置き換えたことに注意してください。
これを無効にするには、AdBlockフィルターに次のルールを追加します。
https://*-edge-chat.facebook.com
この方法の欠点の1つは、リアルタイムでメッセージを受信できないことです。メッセージを取得するには、ページを更新する必要があります。
追加の詳細を提供しているため、(編集するのではなく)オリジナルに基づいて独自の回答を作成しています。
はい、これを行う方法がありますが、この方法はWebベースのFacebookおよびMessengerでのみ機能します。モバイルアプリでは同様のことはできません。
基本的に、Facebookはサーバー側で時間制限のあるリクエストを使用して、クライアントがまだ利用可能かどうかを確認します。そのため、フロントエンド(ロードされたFacebook Webページ)は、アイドル時間を含む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
注:通常は数字になるユーザーIDを置き換えました。
上記のURLを読むと、idle = 117の部分が表示されます。これは、アカウントがアイドル状態になっていた合計秒数を示します。状態=オフラインでチャットがオンまたはオフにされているかどうかを表します。
そのため、これを無効にするには、広告ブロッカーのカスタムフィルタリストに次のルールを追加するだけです。
||*-edge-chat.facebook.com^$xmlhttprequest
FacebookとMessengerの両方で無効にするには、次の2行を追加できます。
||*-edge-chat.facebook.com^$xmlhttprequest
||*-edge-chat.messenger.com^$xmlhttprequest
または、正規表現を使用した単一行:
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/?/$xmlhttprequest
この方法のいくつかの欠点は、リアルタイムでメッセージを受信できず、チャットがオンになっていてもオンラインで表示されないことです。新しいメッセージを受信するには、ページを更新する必要があります。
これらの欠点の両方を回避するために、1つの回避策があります。代わりに次の行を追加できます。
/^https?\:\/\/\d+-edge-chat\.facebook\.com\/pull\?.*state=offline/$xmlhttprequest
または、FacebookとMessengerの両方にこれを追加します。
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/pull\?.*state=offline/$xmlhttprequest
最終結果は次のようになります。
残念ながら、Facebookのフロントエンドはクライアントがアクティブであることを定期的に報告する場合にのみメッセージをフェッチできるため、他のソリューションはないようです。したがって、フェッチは最後のアクティビティが報告された後に行われます。これらのアクションは両方とも、同じリクエストを通じて、単一のバックエンドスクリプト(* -edge-chat.facebook.com / pull)によって可能になります。したがって、一方が他方なしで存在することはできません。