Полное руководство по созданию бота с автоматическим ретвитом
Опубликовано: 2022-02-23Слово «бот» вызывает множество различных коннотаций, в зависимости от того, какой у вас опыт работы с этим термином и с жизнью. Для людей, погруженных в научную фантастику, это напоминает сложных роботов и футуризм. Для маркетологов это напоминает программное обеспечение, которое спамит их сайты. Для других это просто означает часть программного обеспечения, используемого для автоматизации чего-то утомительного.
На самом деле боты очень просты; это просто программное обеспечение, и, как правило, даже не особенно сложное программное обеспечение. Конечно, что-то вроде поисковых роботов Google сложно, но в них встроено множество различных функций. В чем-то более простом, например, в Twitter-боте, на самом деле не так уж много. Давайте посмотрим, что нужно для его создания, а?
Функционал бота в Твиттере
Боту Twitter не нужно много делать. Простому ретвит-боту просто нужен список функций, который выглядит примерно так:
- Возможность аутентифицировать себя как пользователя или подключиться к учетной записи через интеграцию с приложением Twitter.
- Возможность читать твиты в широком масштабе.
- Возможность определять наличие определенных хэштегов или ключевых слов в читаемых им твитах.
- Возможность ретвитить твиты , содержащие указанные хэштеги или ключевые слова.
- Возможность определить, ретвитил ли он данный пост — по сути, проверка, чтобы убедиться, что он не застревает в цикле ретвитов сообщений, которые он чирикает.
Пять пунктов, большинство из которых легко сделать, это неплохо. Теперь самый простой способ сделать это — использовать скрипты Google, и вам даже не нужно знать, как это сделать. Однако, если вы хотите получить более продвинутую функциональность, вы можете покопаться в коде. Или нет! Это полностью зависит от вас.
Определение строк поиска
Первый шаг — выяснить, что вы хотите, чтобы бот был целью . Вы можете изменить это позже, чтобы изменить бота, но это помогает сразу понять, насколько сложной будет задача. Вы захотите отформатировать это так же, как с панелью поиска Twitter, потому что это то, что будет использовать бот. Это означает использование операторов поиска, которые работают в Twitter. Вот некоторые примеры:
- «www.URL.com min_retweets:5 ИЛИ min_faves:5 -RT» Эта строка будет искать твиты, которые включают выбранный вами URL, и только твиты, которые имеют 5 или более избранных или ретвитов. Это удаляет сами ретвиты из результатов поиска и дает вам только те твиты, которые уже имеют хотя бы некоторую вовлеченность. Бит –RT также служит для удаления ручных ретвитов.
- «#Keyword –RT –filter:links» Эта строка будет искать твиты, содержащие выбранный вами хэштег, с фильтром для удаления твитов, содержащих ссылки, поскольку предыдущий оператор был бы излишним. –RT, опять же, удаляет ручные ретвиты.
- «#Keyword near:»Seattle,WA» в пределах:20 миль» Эта строка будет искать твиты, содержащие выбранный вами хэштег, но только те твиты, которые были сделаны людьми в пределах 20 миль от указанного географического местоположения, в данном случае — Сиэтла. У него нет фильтра –RT, поэтому он может идентифицировать твиты, изначально опубликованные людьми из других регионов, но ретвитнутые в целевой области.
Вы можете смешивать и сочетать их по своему усмотрению. Есть и другие фильтры. Что вам нужно сделать, так это зайти в поиск Twitter и просто поэкспериментировать с переменными и фильтрами, пока не появится поисковый запрос, который даст вам то, что вы хотите увидеть, и ничего больше. Скопируйте эти строки, чтобы вы могли использовать их позже.
Кодирование бота
Первое, что вы должны сделать, прежде чем приступить к созданию бота, — это зарегистрировать новую учетную запись в Твиттере. Неважно, какая у него информация профиля, вы просто используете ее для тестирования. Это связано с тем, что в Твиттере действуют очень строгие правила о том, как боты могут действовать на своем сайте. Если вы пытаетесь протестировать бота со своей основной учетной записью, и бот пересекает черту, ваша основная учетная запись внезапно блокируется, и вы ничего не можете сделать. Чтобы избежать этой проблемы, создайте фиктивную учетную запись, которая не имеет значения, если она заблокирована.

Каковы правила Twitter в отношении автоматизации и ботов? Вы можете прочитать подробности здесь, но я подытожу основные моменты.
- Автоматизация, которая ничего не делает, кроме публикации на актуальные темы, считается вредной для пользователей и поэтому запрещена .
- Автоматизация, которая ретвитит, часто считается спамом и запрещена в массовом порядке, но разрешен ограниченный ретвит для приложений, одобренных Твиттером.
- Автоматизация, которая отправляет прямые сообщения, запрещена, если получатель не согласен получать сообщения.
- Запрещена автоматизация, которая лайкает твиты массово.
К сожалению, приложение, которое ничего не делает, кроме массового ретвита контента, противоречит правилам. Наше приложение планирует сделать ретвиты более целенаправленными и менее случайными, но это по-прежнему потенциально противоречит правилам. Вы обходите черту, создавая такого бота, поэтому будьте осторожны и не используйте его с учетной записью, которая вам действительно небезразлична.
Вам также потребуется настроить Google Диск, чтобы управлять своим кодом и использовать скрипты Google для настройки этого бота. Вы, конечно, можете использовать другие среды разработки, если вы с ними знакомы, но на этом этапе вам, вероятно, не нужно читать это руководство.
Теперь вам нужно перейти в раздел разработчиков приложений Twitter по адресу apps.twitter.com и создать новое проектное приложение. Вам нужно будет указать имя, описание и URL-адрес приложения, а затем щелкнуть, чтобы создать его.
Создав приложение, щелкните раздел «ключи и токены доступа» и нажмите, чтобы создать токен доступа. Это сгенерирует для вас ключ, который вам нужно будет держать под рукой.
Бот, который мы здесь создаем, является вариацией бота, созданного Амитом Агарвалом , который можно найти с помощью быстрого поиска в Google. Вы увидите вверху много контента в коричневом цвете и немного в черном. Коричневый — комментарии; они фактически невидимы. Черный - это настоящий код. Строки вверху — это строки, которые вам нужно отредактировать. Вы видите, где у него есть строки для вашего потребителя и ключей доступа? Добавьте туда свои данные. Вам также нужно будет добавить строку поиска, которую вы сделали на первом шаге.

Если хотите, можете прокрутить вниз и прочитать остальную часть кода. Однако вы не должны ничего менять, если не знаете, что делаете. По сути, бот каждые пять минут проверяет Твиттер на наличие нового контента, который соответствует заданной вами строке поиска. Когда он обнаружит некоторые из них, он ретвитнет их и поставит в избранное. Он также имеет встроенную полуслучайную задержку между действиями, от 10 секунд до 1 минуты, чтобы его действия не выглядели как действия бота. Регулярные действия по таймеру легко обнаруживаются; добавление случайного таймера помогает минимизировать этот риск.
Теперь на вашем Google Диске просто нажмите «Выполнить» и запустите бота. Вот и все! Он настроен на работу и будет работать до тех пор, пока вы его не выключите. Чтобы отключить его, вернитесь на Диск и нажмите «Выполнить» и выключите бота.
Альтернативный бот-метод
Этот следующий метод также основан на одном из сценариев Амита, но он немного более окольный. Как следствие, его также сложнее обнаружить как бота, если вы не используете его таким образом, который действительно явно является ботом.
На этот раз вам нужно войти в Twitter и создать виджет. Чтобы использовать одну из строк поискового запроса, нажмите на вкладку «Поиск» создателя виджета и введите ее там. Создайте виджет и скопируйте URL-адрес. Одна часть URL будет длинной числовой строкой; скопируйте это как идентификатор вашего виджета.
Далее вам нужно будет получить скрипт Амита, который можно найти здесь. Этот скрипт преобразует ваш виджет Twitter — в данном случае встроенную версию результатов поискового запроса — в RSS-канал. Это важно, потому что Твиттер перестал поддерживать преобразование твитов в RSS, поэтому нам нужно использовать этот сторонний скрипт. Обратите внимание, что сценарий по приведенной выше ссылке может работать некорректно из-за нескольких недавних изменений в Твиттере. Если это не так, проверьте эту ссылку и используйте скрипт там.

Как и прежде, как только скрипт окажется на вашем Google Диске, вам нужно его запустить. Он попросит авторизоваться в вашей учетной записи Twitter. Позвольте ему авторизоваться, и все готово. После запуска скрипта вам нужно будет нажать «Опубликовать» и нажать «Развернуть» как веб-приложение. Разрешите всем видеть его, щелкните, чтобы создать его, и скопируйте ссылку, которую он дает вам. Это ссылка, которая приведет к RSS-каналу, за исключением того, что он просто отображает ваш канал. Что вам нужно сделать, это добавить ? в конец URL-адреса и вставьте идентификатор виджета Twitter, который вы скопировали ранее. Это выполнит код в виджете, а не в вашем авторизованном канале.
Все это преобразовало ваш поисковый запрос в RSS-ленту результатов. Однако это само по себе не служит нашим целям ретвита. Далее нам нужно настроить что-то, что принимает RSS-вход и ретвитит его. Для этого мы будем использовать IFTTT для небольшой автоматизации макросов.
После регистрации в IFTTT вы можете создать новый рецепт. Нажмите, чтобы выбрать вход RSS и ввести URL-адрес вашего канала виджетов. Нажмите «Далее» и нажмите «Твиттер» в качестве вывода. IFTTT спросит вас, какие действия происходят здесь через Twitter; вы должны нажать «опубликовать твит» и добавить «_RT _» в поле «что происходит».

Теперь произойдет то, что запустится скрипт, который запустит ваш поиск в Твиттере. Когда появляется новый результат, он публикуется в этой пользовательской RSS-ленте. Когда в этой RSS-ленте появляется что-то новое, ваш бот-рецепт IFTTT вручную ретвитит этот твит. Рекомендуется использовать фильтр –RT в строке поиска, чтобы избежать повторного ретвита вашего бота.
Метод Javascript
Этот третий метод немного более надежен, но также требует от вас некоторых знаний в области кодирования. Еще раз, вы захотите начать с создания учетной записи Twitter для своего бота, потому что запуск его из вашей основной учетной записи вызовет проблемы. В этой новой учетной записи создайте список пользователей с именем cool-people и добавьте в список свою обычную учетную запись.
Затем войдите в свою новую учетную запись и выполните процесс создания нового приложения на странице apps.twitter.com. Вы захотите установить уровень доступа для чтения и записи, убедитесь, что URL-адрес обратного вызова пуст, и создайте свой токен доступа. Как и прежде, скопируйте ключи токена доступа и различные данные.
Код, который мы используем для этого бота, был размещен на Github Брайаном Брауном, хотя вам может потребоваться использовать Git для получения кода.

Github здесь, и код, необходимый для его git
- получить клон https://github.com/bryanbraun/twitter-listbot.git
- cd twitter-listbot
Теперь вам нужно открыть файл index.js в любом текстовом редакторе, который не добавляет метаданные. То есть что-то вроде Wordpad или Notepad++, а не Microsoft Word. Вам нужно будет изменить запись me: XXXXX на имя пользователя вашей учетной записи бота за вычетом @, и убедитесь, что поле myList имеет то же имя, что и ваш список выше. На самом деле вам не нужно называть это классными людьми, это просто то, что по умолчанию.
Теперь бот будет ретвитить твиты людей из списка. Это не совсем то же самое, что бот ретвита поля поиска, но вы можете использовать его в сочетании с другим ботом, чтобы выбирать твиты, которые вы хотите, чтобы он видел.
На этом этапе вам нужно выполнить сложный код. Вам нужно подключить информацию о вашем токене доступа к новому боту, и вам нужно будет запустить его с помощью nodeJS. Он откроет окно, которое выглядит так, будто ничего не делает, что означает, что он просто прослушивает новые твиты. Сделайте твит в своей обычной учетной записи, и учетная запись бота должна увидеть и ретвитнуть его.
Здесь у вас есть несколько вариантов, в том числе возможность поместить бота на сервер для работы, чтобы вам не приходилось оставлять свой компьютер включенным и подключенным к Интернету, чтобы поддерживать работу бота. Подробнее об аутентификации и хостинге сервера можно прочитать здесь.
Вы лучше знакомы с PHP, чем с JavaScript или Google Scripts? Если да, то вы можете сделать похожего бота на PHP. Он выполняет ту же последовательность действий из Twitter в RSS и в Retweet, что и настройка IFTTT, за исключением того, что это более настраиваемый код, который вы используете с PHP. Вы можете прочитать все об этом здесь; У меня нет ни места, ни желания подробно объяснять PHP для этого поста. Однако этот бот немного сложнее и включает в себя код для публикации настраиваемых сообщений с благодарностью пользователям, а также некоторые случайные ответы, когда кто-то упоминает ваше имя.
В общем, по крайней мере один из этих методов должен дать вам бота, которого вы захотите использовать. Просто не забудьте свести к минимуму количество спам-подобной активности. Если вы беспокоитесь о спаме, выключите бота на некоторое время или увеличьте задержку между сообщениями, чтобы это происходило реже. Вы также можете рассмотреть возможность увеличения порога вовлеченности для ретвита, если порог в 5 лайков слишком низок.
