Desativar disponibilidade de bate-papo do Facebook (ativo agora, ativo agora, ativo x minutos atrás)

15

Como desabilito a disponibilidade de bate-papo no Facebook? Meu bate-papo está offline e estou usando o Windows 7 com o Firefox. Quando faço login com minha outra conta através do Facebook móvel e abro uma conversa de bate-papo, vejo que a conta que uso no meu computador está ativa "agora" sempre que movo o mouse ou atualizo a página.

Como faço para desativar isso? Existe alguma mensagem específica de pulsação que possa ser bloqueada pelo AdBlock Plus ou algo assim?

um homem apaixonado
fonte

Respostas:

11

Ok, encontrei a solução para bloquear esse status.

Basicamente, o Facebook usa um timer e, por isso, envia uma mensagem de pulsação para seus servidores com o tempo ocioso a cada x minutos.

Aqui está um exemplo dessa solicitação da 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 você ler esse link, verá que & idle = 117 é o total de segundos em que a conta ficou ociosa. O estado = offline significa se o bate-papo está ativo ou offline

Observe que substituí meu ID do usuário, com 15 dígitos.

Portanto, para desativar isso, adicione a seguinte regra nos seus filtros do AdBlock:

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

Uma desvantagem deste método é que você não receberá mensagens em tempo real. Você deve atualizar a página para receber as mensagens.

um homem apaixonado
fonte
11
Algo assim funcionaria no Safari com bloqueadores de conteúdo do iOS 9?
0

Como estou fornecendo detalhes adicionais, estou escrevendo minha própria resposta com base no original (em vez de editá-lo).

Sim, existe uma maneira de fazer isso, mas esse método funciona apenas para o Facebook e o Messenger baseados na Web; você não pode fazer algo semelhante para os aplicativos móveis.

Basicamente, o Facebook usa solicitações programadas no servidor para verificar se o cliente ainda está disponível. Portanto, o front end (página da Web carregada do Facebook) enviará periodicamente uma solicitação HTTP ( XHR ) com o tempo ocioso para seus servidores.

Aqui está um exemplo dessa solicitação:

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: substituí o ID do usuário, que normalmente seria um número.

Se você ler o URL acima, verá a parte dizendo ocioso = 117 . Isso indica o número total de segundos que a conta ficou ociosa. O estado = offline significa se o chat está ativado ou desativado.

Portanto, para desativar isso, adicione a seguinte regra à lista personalizada de filtros do seu bloqueador de anúncios:

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

Para desativar no Facebook e no Messenger, você pode adicionar as duas linhas a seguir:

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

Ou a única linha, usando regex :

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

Algumas desvantagens deste método são que você não poderá receber mensagens em tempo real e não aparecerá on-line, mesmo se o bate-papo estiver ativado. Você precisará atualizar a página para receber novas mensagens.

Para evitar esses dois inconvenientes, aqui está uma solução alternativa. Você pode adicionar esta linha:

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

Ou adicione isso para o Facebook e o Messenger:

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

O resultado final disso será o seguinte:

  1. Quando seu bate-papo estiver desativado, você não aparecerá online, sua última atividade não será relatada e você não poderá receber mensagens em tempo real.
  2. Quando seu bate-papo estiver ativado, você aparecerá on-line, sua última atividade será relatada e você poderá receber mensagens em tempo real.

Infelizmente, parece não haver outra solução, já que o front end do Facebook pode buscar mensagens apenas quando o cliente relata periodicamente que está ativo, portanto, a busca é feita depois que a última atividade é relatada. Ambas as ações são possíveis por um único script de backend ( * -edge-chat.facebook.com / pull ), através da mesma solicitação; portanto, você não pode ter um sem o outro.

Giorgi Gzirishvili
fonte
-2

Redefino o Chrome, que desativou minhas extensões e funciona bem agora.

Pam Lane
fonte