Come creare un bot Twitter russo spaventoso con Java

Utilizzo di Twitter4J per effettuare richieste API Twitter

In madre Russia, il bot pensa per te.

Apparentemente, sono un bot russo. Questa mattina, almeno, mi è stato detto di inviare un numero di telefono a Twitter per verificare la mia identità perché sostenevano di aver "rilevato attività sospette" provenienti dal mio account.

In Tweet-talk, "attività sospette" significa semplicemente dimostrare un'opinione politica conservatrice. Quindi ho fatto quello che avrebbe fatto qualsiasi sviluppatore di software sano. Ho usato una VPN per fabbricare un numero di telefono falso su Skype che potrei usare per la verifica via SMS ...

I robot russi sono chiaramente responsabili di tutto, dal crollo delle centrali nucleari al farti rovesciare il caffè mentre vai al lavoro al mattino. Ovviamente, quindi, questi superpoteri non dovrebbero essere riservati solo ai pochi fortunati. Nello spirito di correttezza, ti mostrerò come anche tu puoi creare un spaventoso bot Twitter russo ... in cinque semplici passaggi per l'avvio!

Non devi essere un programmatore per farlo. Segui le mie istruzioni da vicino e dovresti riuscire a farlo funzionare in pochissimo tempo.

Passaggio 1: crea un'applicazione per Twitter

Il primo passo è creare un'applicazione Twitter con l'account utente con cui si desidera eseguire la richiesta API.

Fai clic su "Crea nuova app" e compila i campi. Puoi mettere qualunque cosa ti piaccia. Non importa davvero.

Ora che hai una "App", vai alla scheda Chiavi e token di accesso. La tua app avrà una chiave consumatore e un segreto consumatore. Prendi nota di questi.

Scorri un po 'verso il basso e genera un nuovo token di accesso.

Prendi nota del token di accesso e del token di accesso.

Passaggio 2: creare un progetto Maven in IntelliJ

Mi piace usare IntelliJ Community Edition per progetti Java. Secondo me Eclipse è un po 'datato, quindi assicurati di scaricare IntelliJ se desideri seguire senza intoppi.

La prima cosa che vorremmo fare è creare un progetto Maven, che ci permetterà di includere Twitter4J, l'unica dipendenza di cui abbiamo bisogno per farlo funzionare.

Dopo aver aperto IntelliJ, fare clic su File> Nuovo> Progetto ...> Maven> Avanti:

Impostare GroupId su com.blockchainmarty e ArtifactId su TwitterAutoBot per coerenza. Possono essere quello che vuoi, ma dovrai assicurarti che siano coerenti durante tutto il programma, quindi copiami per ora.

Vai al tuo file pom.xml e sostituisci il suo contenuto con questo:



     4.0.0 

     com.blockchainmarty 
     TwitterAutoBot 
     1.0-SNAPSHOT 
    
        
            
                 org.apache.maven.plugins 
                 Maven-compiler-plugin 
                
                     1.7 
                     1.7 
                
            
        
    

    
        
             org.twitter4j 
             twitter4j-core 
             [3.0,) 
        
    

Nazdravlje! Ora abbiamo impostato Twitter4J con il nostro progetto. Fai clic su Importa modifiche quando viene visualizzato il messaggio e attendi che Maven importi la nuova dipendenza:

Passaggio 3: preparare i tweet e configurare Twitter4J

Nella tua directory delle risorse, crea un nuovo file. Denominalo tweets.txt:

Il modo in cui configureremo questo bot è di farlo twittare riga per riga da questo file fino a quando non ci saranno più righe. Più i tuoi contenuti sono unici, meno probabilità i tweet falliranno a causa del doppio rilevamento dei contenuti. Suggerisco di scrivere almeno 100 tweet unici per iniziare. Naturalmente, ogni riga dovrebbe essere inferiore al limite di 280 caratteri ciascuno di Twitter.

Leggi questo articolo per l'ispirazione se stai cercando di essere bandito il più rapidamente possibile. Ecco alcuni esempi:

Adoro Donald Trump #MAGA
Le pistole non uccidono le persone. Le persone uccidono le persone. # <3NRA
Qualsiasi altra opinione conservatrice.

Nella stessa directory, crea un nuovo file chiamato twitter4j.properties. Dovrai compilare le seguenti informazioni dal passaggio 1 di questo tutorial:

debug = true
oauth.consumerKey =
oauth.consumerSecret =
oauth.accessToken =
oauth.accessTokenSecret =

Ora che siamo autenticati con la nostra applicazione Twitter, possiamo passare al codice.

Passaggio 4: il codice sorgente

Crea una nuova classe Java nella directory src / main / java del tuo progetto. Assicurati di chiamarlo TwitterAutoBot:

Questo file conterrà tutto il codice di cui abbiamo bisogno per eliminare i nostri tweet deliziosamente offensivi. Incolla quanto segue, sostituendo ciò che è già lì:

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

import java.io. *;
import java.nio.charset.Charset;

classe pubblica TwitterAutoBot {
    public static void main (String [] args) {
        tweetLines ();
    }
    tweetLines vuoto statico privato () {
        Linea di stringa;
        provare {
            provare (
                    InputStream fis = new FileInputStream ("C: \\ Users \\ marty \\ Documents \\ TwitterAutoBot \\ src \\ main \\ risorse \\ tweets.txt");
                    InputStreamReader isr = new InputStreamReader (fis, Charset.forName ("Cp1252"));
                    BufferedReader br = new BufferedReader (isr);
            ) {
                while ((line = br.readLine ())! = null) {
                    // Gestisci la linea
                    sendTweet (line);
                    System.out.println ("Tweeting:" + line + "...");

                    provare {
                        System.out.println ("Dormire per 30 minuti ...");
                        Thread.sleep (1800000); // ogni 30 minuti
                        // Thread.sleep (10000); // ogni 10 secondi
                    } catch (InterruptedException e) {
                        e.printStackTrace ();
                    }

                }
            }
        } catch (IOException e) {
            e.printStackTrace ();
        }

    }
    invio statico privato sendTweet (linea di stringa) {
        Twitter twitter = TwitterFactory.getSingleton ();
        Stato status;
        provare {
            status = twitter.updateStatus (linea);
            System.out.println (stato);
        } catch (TwitterException e) {;
            e.printStackTrace ();
        }
    }
}

Assicurarsi di modificare il percorso del file all'interno della funzione FileInputStream in modo che corrisponda alla posizione effettiva del file tweets.txt sul computer. Questo sarà sicuramente diverso da quello mostrato sopra. A meno che tu non stia usando il mio computer, hacker russo! Nel qual caso, trakhat 'tebya!

Thread.sleep (x), dove x è il numero di minuti tra i tweet in millisecondi è probabilmente l'unica cosa che vorresti personalizzare. Per impostazione predefinita, l'ho impostato per twittare una volta ogni 30 minuti. Probabilmente puoi cavartela una volta ogni minuto se vuoi.

Dovrai anche andare avanti e leggere i limiti dell'API di Twitter per familiarizzare con la frequenza con cui puoi twittare senza essere distrutto dai tuoi nuovi padroni senzienti di intelligenza artificiale. Come sappiamo, il Trust & Safety Council di Twitter è oscuro e pieno di errori ...

Passaggio 5: esecuzione del programma

Nell'angolo in alto a destra dello schermo, fai clic su Modifica configurazioni ...

Successivamente, premi il segno più verde e seleziona Applicazione dal menu Aggiungi nuova configurazione:

Fai clic su Classe principale nella scheda Configurazione, quindi seleziona TwitterAutoBot.

L'ultimo passaggio è fare clic sul pulsante di riproduzione verde nell'angolo in alto a destra dello schermo:

Se ha funzionato, vedrai qualcosa di simile al seguente nel terminale di debug nella parte inferiore dello schermo:

Esistono ovviamente modi più sofisticati per farlo, come eseguire il programma come una funzione cloud che non richiede che IntelliJ e il tuo laptop siano sempre accesi, ma questo è tutto il tempo che ho per ora. Commenta se hai qualche problema e farò del mio meglio per dare una mano. Tre brindisi per la prrrropaganda!

Martin è Lead Project Manager presso Selotec. Dovresti seguirlo su Twitter.