Как да направите страшна руска Twitter Bot с Java

Използване на Twitter4J за отправяне на заявки към API на Twitter

В Майка Русия, ботът мисли за теб.

Явно съм руски бот. Тази сутрин поне ми казаха да изпратя телефонен номер в Twitter, за да проверя самоличността си, защото те твърдяха, че са „открили подозрителна активност“, идващи от моя акаунт.

В туит-говоренето „подозрителна дейност“ означава просто да се демонстрира консервативно политическо мнение. Така че направих това, което би направил всеки здрав разработчик на софтуер. Използвах VPN, за да създам фалшив телефонен номер през Skype, който мога да използвам за целите на потвърждаването на SMS ...

Руските ботове са категорично отговорни за всичко - от срива на атомната електроцентрала до изливането на кафе на път за работа сутрин. Очевидно е, че тези суперсили не трябва да бъдат запазени само за няколко късметлии. В духа на справедливостта ще ви покажа как и вие можете да направите Страшен руски Twitter Bot ... в пет лесни стъпки за зареждане!

Не е нужно да сте програмист, за да направите това. Просто следвайте моите инструкции отблизо и вие трябва да можете да постигнете това за нула време.

Стъпка 1 - Направете Twitter заявление

Първата стъпка е да направите Twitter приложение с потребителския акаунт, с който искате да изпълните заявката за API.

Кликнете върху „Създаване на ново приложение“ и попълнете полетата. Можете да оставите каквото искате. Това наистина няма значение.

Сега, когато имате „App“, отидете на раздела Ключове и маркери за достъп. Вашето приложение ще има потребителски ключ и потребителска тайна. Обърнете внимание на това.

Превъртете надолу и генерирайте нов маркер за достъп.

Обърнете внимание на токена за достъп и тайната за достъп.

Стъпка 2 - Създайте проект Maven в IntelliJ

Обичам да използвам IntelliJ Community Edition за Java проекти. Според мен Eclipse е малко остарял, така че не забравяйте да изтеглите IntelliJ, ако искате да следвате, без да се налага.

Първото нещо, което ще искаме да направим, е да създадем проект Maven, който ще ни позволи да включим Twitter4J, единствената зависимост, от която се нуждаем, за да стартираме това.

След отваряне на IntelliJ щракнете върху Файл> Ново> Проект…> Maven> Напред:

Задайте GroupId на com.blockchainmarty и ArtifactId на TwitterAutoBot за последователност. Те могат да бъдат каквото искате, но ще трябва да сте сигурни, че са последователни в цялата програма, така че просто ми копирайте засега.

Отидете до файла си pom.xml и заменете съдържанието му с това:


<проект xmlns = "http://maven.apache.org/POM/4.0.0"
         xmlns: XSi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     4.0.0 

     com.blockchainmarty 
     TwitterAutoBot 
    <Версия> 1,0-SNAPSHOT 
    <Изгради>
        <Приставки>
            <Плъгин>
                 org.apache.maven.plugins 
                 Maven-компилатор-приставка 
                <Конфигурация>
                    <Източник> 1.7 
                    <Цел> 1.7 
                
            
        
    

    <зависимости>
        <Зависимост>
             org.twitter4j 
             twitter4j ядро ​​
            <Версия> [3,0,) 
        
    

Nazdravlje! Вече сме създали Twitter4J с нашия проект. Щракнете върху Импортиране на промени, когато се появи съобщението и изчакайте Maven да импортира новата зависимост:

Стъпка 3 - Подгответе туитове и конфигурирайте Twitter4J

В директорията на вашите ресурси създайте нов файл. Наименувайте го tweets.txt:

Начинът, по който ще настроим този бот, е да го туитираме ред по ред от този файл, докато няма повече редове. Колкото по-уникално е вашето съдържание, толкова по-малко вероятните туитове ще се провалят в резултат на откриване на дублирано съдържание. Предлагам да напишете поне 100 уникални туитове, за да продължите. Разбира се, всеки ред трябва да бъде по-малък от лимита на Twitter от 280 знака всеки.

Прочетете тази статия за вдъхновение, ако искате да бъдете забранени възможно най-бързо. Ето няколко примера:

Обичам Доналд Тръмп #MAGA
Пистолетите не убиват хора. Хората убиват хора. # <3NRA
Всяко друго консервативно мнение.

В същата директория създайте нов файл, наречен twitter4j.properties. Ще трябва да попълните следната информация от стъпка 1 на този урок:

отстраняване на грешки = вярно
oauth.consumerKey =
oauth.consumerSecret =
oauth.accessToken =
oauth.accessTokenSecret =

Сега, когато сме удостоверени с нашето приложение за Twitter, можем да преминем към кода.

Стъпка 4 - Изходният код

Създайте нов Java клас в директорията src / main / java на вашия проект. Уверете се, че го наречете TwitterAutoBot:

Този файл ще съдържа целия код, от който се нуждаем, за да взривим нашите вкусно обидни туитове. Поставете следното, заменяйки всичко, което вече има:

внос twitter4j.Status;
импорт twitter4j.Twitter;
импортиране на twitter4j.TwitterException;
импортиране на twitter4j.TwitterFactory;

импортиране java.io. *;
импортиране java.nio.charset.Charset;

публична класа TwitterAutoBot {
    public static void main (String [] args) {
        tweetLines ();
    }
    частни статични невалидни tweetLines () {
        Струнна линия;
        опитвам {
            опитвам (
                    InputStream fis = new FileInputStream ("C: \\ Потребители \\ marty \\ Документи \\ TwitterAutoBot \\ src \\ основни \\ ресурси \\ tweets.txt");
                    InputStreamReader isr = нов InputStreamReader (fis, Charset.forName ("Cp1252"));
                    BufferedReader br = нов BufferedReader (isr);
            ) {
                while ((line = br.readLine ())! = null) {
                    // Справяне с линията
                    sendTweet (линия);
                    System.out.println ("Туит:" + линия + "...");

                    опитвам {
                        System.out.println ("Спя в продължение на 30 минути ...");
                        Thread.sleep (1800000); // на всеки 30 минути
                        // Конец.спя (10000); // на всеки 10 секунди
                    } улов (InterruptException e) {
                        e.printStackTrace ();
                    }

                }
            }
        } улов (IOException e) {
            e.printStackTrace ();
        }

    }
    частен статичен празнота sendTweet (Строкова линия) {
        Twitter twitter = TwitterFactory.getSingleton ();
        Състояние на състоянието;
        опитвам {
            status = twitter.updateStatus (ред);
            System.out.println (статус);
        } улов (TwitterException e) {;
            e.printStackTrace ();
        }
    }
}

Уверете се, че промените пътя на файла във функцията FileInputStream, за да съответства на действителното местоположение на файла tweets.txt на вашия компютър. Това определено ще бъде различно от това, което е показано по-горе. Освен ако не използвате моя компютър, руски хакер! В този случай, trakhat 'tebya!

Thread.sleep (x), където x е броят минути между туитовете в милисекунди, вероятно е единственото нещо, което искате да персонализирате. По подразбиране го настроих да туитва веднъж на всеки 30 минути. Вероятно може да се измъкнете с веднъж всяка минута, ако желаете.

Също така ще искате да продължите напред и да прочетете лимитите на API на Twitter, за да се запознаете с това колко често можете да туитвате, без да се булдозирате от новите си разумни AI господари. Както знаем, Съветът за доверие и безопасност в Twitter е тъмен и пълен с грешки ...

Стъпка 5 - Изпълнение на програмата

От горния десен ъгъл на екрана щракнете върху Редактиране на конфигурации ...

След това натиснете зеления знак плюс и изберете Приложение от менюто Добавяне на нова конфигурация:

Щракнете върху Основен клас в раздела Конфигурация, след което изберете TwitterAutoBot.

Последната стъпка е да кликнете върху зеления бутон за възпроизвеждане в горния десен ъгъл на вашия екран:

Ако работи, ще видите нещо като следното в терминала за отстраняване на грешки в долната част на екрана:

Очевидно има по-сложни начини за това, като например стартиране на програмата като облачна функция, която не изисква IntelliJ и вашия лаптоп да бъдат винаги включени, но това е приблизително през цялото време, което имам за сега. Моля, коментирайте, ако имате проблеми и ще се опитам да помогна. Три наздраве за prrrropaganda!

Мартин е водещ мениджър на проекти в Selotec. Трябва да го последвате в Twitter.