Analisando Perfis no Twitter para detectar comportamento de Bot
spottingbot é um projeto experimental e de código aberto que precisa de você para evoluir, não hesite em contribuir no nosso repositório do GitHub abrindo um pull request ou entrar em contato conosco em [email protected]. Documentação sobre como os índices atuais são calculados está disponível aqui
Você também pode se juntar a nós no nosso Grupo de Telegram para conversar livremente sobre sugestões, melhorias ou simplesmente nos perguntar qualquer coisa.
spottingbot pode ser usado tanto como interface de linha de comando (cli) ou módulo independente.
npm install
Crie um arquivo .env que contenha
TWITTER_CONSUMER_KEY="A chave de consumidor da sua aplicação"
TWITTER_CONSUMER_SECRET="O segredo de consumidor da sua aplicação"
TWITTER_ACCESS_TOKEN_KEY="O token de acesso da sua aplicação, só para autenticação de usuário"
TWITTER_ACCESS_TOKEN_SECRET="O secredo de acesso da sua aplicação, só para autenticação de usuário"
Ambas autenticações de Usuário e de Aplicativo são suportadas, para de Aplicação, o token do Portador será requisitado automaticamente
npm start nome_de_usuário
or
source/cli.js nome_de_usuário
nome_de_usuário
tem que ser substítuido pelo nome do usuário que deseja-se analisar
npm link
sudo pode ser necessário
Então
spottingbot nome_de_usuário
const spottingbot = require('spottingbot');
spottingbot(nome_de_usuário, index);
nome_de_usuário
é uma string que contem o screenname do perfil do twitter para analisar.
twitter_config
É um objeto que contem as credenciais do Twitter, o objecto twitter_config
deve ser assim:
{
consumer_key: "A chave de consumidor da sua aplicação",
consumer_secret: "O segredo de consumidor da sua aplicação",
access_token_key: "O token de acesso da sua aplicação", // Only for User authentication
access_token_secret: "O secredo de acesso da sua aplicação" // Only for User authentication
}
index
é usado para desabilitar alguns indices, é um objeto assim:
{
user: true,
friend: true,
temporal: true,
network: true
}
Por padrão, ou omissão, todas as chaves são true
.
Para desabilitar apensa um Índice, não é necessário adicionar as outras chaves no objeto, {friend: false}
, vai funcionar.
spottingbot funciona tanto com callback quanto com promesas do node
spottingbot(nome_de_usuário, twitter_config, index, function(error, result) {
if (error) {
// cuida do erro
return;
}
// faz algo com o resultado
})
spottingbot(nome_de_usuário, twitter_config, index)
.then(result => {
// faz algo com o resultado
})
.catch(error => {
// cuida do erro
})
O valor do retorno é um objeto que contem
{
metadata: {
count: 1 // Sempre 1 por ora
},
profiles: [
{
nome_de_usuário: 'screen_name',
url: 'https://twitter.com/screen_name',
avatar: 'image link',
language_dependent: {
sentiment: {
value: 0.65
}
},
language_independent: {
friend: 0.19,
temporal: 0.37,
network: 0.95,
user: 0
},
bot_probability: {
all: 0.37
},
user_profile_language: 'en',
}
]
}
O Pegabot usa um sistema de cache para evitar refazer analises no mesmo usuário. Esse sistema de cache usa um Banco de Dados PSQL.
Como configurar o Banco de Dados PSQL: How to set-up the PostgreSQL database:
- Instale e configura o PSQL na sua máquina
- Cria um banco de dados para o pegabots. Se quiser, você pode criar um novo usuário com senha para ser o dono da banco de dados, ou só usar o usuário padrão postgres.
- Preencha os dados do banco no arquivo .env. Examplo:
DATABASE_HOST="127.0.0.1"
DATABASE_USER="postgres"
DATABASE_PASSWORD=""
DATABASE_NAME="pegabot"
- Instale o módulo npm
sequelize-cli
- Execute as migrations com
sequelize-cli db:migrate
spottingbot é um projeto inspirado por Botometer, um porjeto OSoMe.
Esse projeto é parta de iniciativa PegaBot.
PegaBot é um projeto do Instituto de Tecnologia e Sociedade (ITS Rio), Instituto Equidade & Tecnologia e AppCívico.
spottingbot é um projeto experimental e de código aberto que precisa de você para evoluir, não hesite em contribuir no nosso repositório do GitHub abrindo um pull request ou entrar em contato conosco em [email protected]. Documentação sobre como os índices atuais são calculados está disponível aqui