Verificando o destinatário

Muitas vezes um site tem usuários engraçadinhos que informam e-mails falsos. Esses tempo pesquisei um pouco e encontrei alguns serviços que podem evitar ou diminuir isso.

Teste todos os dois que mais gostei foram o Email-Checker.Com e o Email-Validator.Net. Boa relação custo beneficio e funcionou muito bem.

 

Escutando o Twitter

 Um bom ouvinte não só é popular em qualquer lugar, mas também fica sabendo das coisas depois de algum tempo.

O programa importador de Tweets, designado Marvin, necessita da API fornecida pelo Twitter. Num primeiro momento foi utilizada a REST API, mas a maneira mais correta é utilizando a Streaming API.

A Streaming API fornece um acesso de baixa latência ao fluxo global de Tweets. O streaming funciona através do envio de mensagens indicando novos Tweets. São fornecidos 3 endereços de acordo com a necessidade:

  • Public Streams: utilizado para seguir específicos usuários ou tópicos e para mineração de dados;
  • User Sreams: retorna os dados de apenas um usuário, utilizado para apresentar uma visão;
  • Site Streams: utilizado por servidores que necessitam conectar ou Twitter em nome de muitos usuários.

Para o desenvolvimento do Marvin, foi utilizado a Public Streams que suporta uma série de parâmetros passados através de POST. Para obter as mensagens desejadas, foi utilizado o parâmetro track. Esse parâmetro é uma lista de frases separadas por vírgulas, cada frase pode ter entre 1 e 60 caracteres e um ou mais termos separados por espaço. O  Tweet será retornado se ao menos uma das frases possuir todos os seus termos (em ordem e ignorando a caixa alta ou baixa). As frases são comparadas através de UTF-8, levando em consideração até a acentuação.

Para a conexão com a API, é necessário a autenticação que pode ser feita de duas formas: Básica e OAuth. No Marvin, optei por utilizar a autenticação básica que necessita um usuário e senha válidos do Twitter. Uma conexão pode ser desconectada pelo servidor quando uma outra conexão é realizada com as mesmas credenciais.

Para evitar super-congestionamento, as conexões podem receber o código HTTP 420 (Rate Limited). Essa situação pode acontecer através de sucessivas desconexões e reconexões (para troca de parâmetros por exemplo). Para evitar que o IP seja bloqueado por um período de tempo é importante que ao receber uma notificação 420, as tentativas de novas conexões sejam suspensas por alguns minutos.

A diferença básica entre o Streaming API e REST API é que no Streaming a conexão HTTP é mantida aberta, o que envolve uma utilização diferente pela aplicação.

Enquanto no REST, cada requisição de mensagens abre e fecha uma conexão HTTP (Figura 1), no Streaming API, a conexão HTTP é mantida por um processo paralelo e os Tweets são atualizados por notificações (Figura 2)

Figura 1

Mesmo o Streaming API sendo mais complexo que a REST, possui como benefício a utilização em uma infinidade de aplicativos.

Figura 2

Fonte: Twitter