Автоматическая трансляция событий с вашего аккаунта golos в twitter. Бот для windows/linux/браузера
https://github.com/vikxx/twitbot
Скрипт - приложение, которое поможет вам автоматически транслировать разные события из голоса в свой аккаунт на Twitter. Скрипт можно запустить на своем пк, vps или на бесплатных сервисах с возможностью deploy js.
Для демонстрации работы приложения я создал аккаунт https://twitter.com/g0los и теперь каждый мой апвоут (c заданной силой более 24%) отображается статусом рекомендацией в твиттере.
Так можно дополнительно поддержать авторов - не только голосом, но и продвижением. Разумеется это идет на пользу и всему голосу, особенно в массовом использовании на живых аккаунтах твиттера.
Учитывая широкие возможности API голоса и твиттера - поле для деятельности очень широкое и не ограниченное таким функционалом. Реализовать можно множество разных алгоритмов для бота:
- Публикация ваших постов
- Статусы с полученными голосами
- Статусы об упоминаниях
- Статусы о транзакциях
- Прайс фиды
- Изменение репутации
- Общие события на голосе
И многое-многое другое!
Так же есть удобная реализация SMS уведомлений которую можно выгодно использовать:
Вы можете подписаться или предложить друзьям подписаться на ваш аккаунт твиттера включив SMS уведомления и тогда ваши новые статусы будут приходить вашим подписчикам в SMS!
Установка
Репозиторий на Github | Старт на Glitch | Тестовый твиттер |
---|
Подробное руководство к установке
В инструкции будет описание как для опытных пользователей, так и для тех, кто не обладает навыками установки приложений.
- Для новичков я опишу как запустить бот в бесплатных сервисах glitch.com и heroku.com
- Для тех, кто готов установить node на windows будет инструкция по запуску
- Для владельцев VPS или linux будут команды
Начинаем
В первую очередь нам понадобится получить необходимые ключи для использования своего твиттера на странице
https://apps.twitter.com/
Создаем приложение, заполняем описание, а в настройках копируем себе ключи
В конечном счете у вас будет 4 ключа, скопируйте их куда-то, а позднее мы надежно спрячем их как переменные среды
wikipedia:environment variable.
Работает на nodejs, при желании можно развернуть и в браузере:
Новичкам: запуск в браузере благодаря glitch
Самый быстрый старт - это скопировать код скрипта и запустить его на Глич - это бесплатная платформа для онлайн тестирования nodejs приложений. В таком режиме бот будет работать тогда, когда вы активны на глич.
Входим на https://glitch.com через FB или github, переходим на страницу нашего бота https://glitch.com/edit/#!/crack-toad
Жмем remix
- это склонирует проект в ваш аккаунт.
Переходим на файл с env
и значком ключика, прописываем ключи полученные на твиттере (знак ключа указывает на то, что они не будут видны пользователям, можете не переживать)
В файле gotweet.js
редактируем настройки интервалов, логина и прочее
Нажав на logs откроется консоль, где вы будете видеть ход работы приложения.
Минусы глича - он не позволит вам постоянно держать приложение активным, у heroku c этим по-лучше, о нем ниже:
Новичкам: запуск на бесплатном сервере от Heroku
О хероку я писал ранее в посте о бесплатных сервисах https://golos.io/x/@vik/free, для легкого старта вам понадобится залогиниться на https://www.heroku.com c помощью github и форкнуть себе проект https://github.com/vikxx/twitbot
После чего в настройках деплоя вы указываете путь к форку в рамках своего аккаунта и можете запустить на серверах heroku приложение прямо с гитхаб. Имея возможность редактировать файлы на github и запускать приложение на heroku
Разумеется указывать секретные ключи твиттера публично на github мы не будем, а укажем их в настройках heroku как переменные среды
На бесплатном плане heroku позволяет работать приложению 18 часов в сутки, но засыпать оно будет каждые 30 минут, т.е. небходимо периодически его будить активностью :) Если у вас есть постоянно работающий пк с выходом в сеть - вам удобнее будет запустить приложение на node js локально. Об этом далее:
Энтузиастам на WINDOWS + node js
Вы можете запускать бот на своем пк предварительно установив node js
Скачайте git и распакуйте в желаемую папку на ПК
Запустите консоль, например powershell
Перейдите в папку с проектом и установите так же twitter и golos пакеты:
cd / путь к папке с распакованным приложением
npm install twitter
npm install golos
Теперь вам нужно безопасно задать переменные среды, выполните код ниже заменив xxxx
ключами в соответствии с ключами полученными на https://apps.twitter.com/
$env:TWITTER_CONSUMER_KEY = "xxxxxxxxxxxxxxxxxxxxxxx"
$env:TWITTER_CONSUMER_SECRET = "xxxxxxxxxxxxxxxxxxx"
$env:TWITTER_ACCESS_TOKEN_KEY = "xxxxxxxxxxxxxxxxxxx"
$env:TWITTER_ACCESS_TOKEN_SECRET = "xxxxxxxxxxxxxxx"
Теперь можете произвести запуск приложения, находясь в папке с репозиторием запустите команду:
npm start
Вы увидите статус работы бота в консоли
В настройках бота есть возможность указать временной отступ offset
(например публиковать старые голоса или только новые) интервал работы interval
, а именно интервал проверки ваших голосов и интервал публикации в твитов twitinterval
. Естественно вы можете указать чужой логин u
и тогда твиты будут содержать информацию о голосовании пользователя, которого вы указали.
// Настройки аккаунта и интервалов работы
// Логин голосующего
u='vik',
// Учитывать голоса за последние N минут. Например 1440 это сутки.
offset = 30,
// Проверять новые голоса каждые 10 секунд
interval = 10*k,
// Интервал публикации постов в твиттер в миллисекундах
// Не ставьте слишком короткий интервал -
// это поможет избежать ошибок и придаст естественный вид твитам.
twitinterval = 3000,
В файле gotweet.js
вы найдете шаблон сообщения, который можно отредактировать под себя.
(При желании добавить рэндомные фразы)
var tweet =u+' проголосовал за пост в #блокчейн #голос https://golos.io/x/@'+d[i].link;
Просто расположите в строке переменные с ссылкой и именем как вам удобно.
Так же в файле gotweet.js
есть строка
if (time > t && res[x].percent/100 > 24)
Число 24
- это порог силы голоса в % после которого ваш апвоут будет опубликован на твиттере. Т.е. если вы проголосуете на 24% или ниже - публикации не будет. Вы можете изменить значение. Например поднять до 99 и тогда публиковаться будут только голоса в полную силу.
Владельцам VPS ubuntu, centos и др.
Просто установите зависимости, клонируйте скрипт с githib и пропишите ключи, который предоставил твиттер, а после команда npm start
.
git clone https://github.com/vikxx/twitbot.git
npm install twitter
npm install golos
export TWITTER_CONSUMER_KEY =
export TWITTER_CONSUMER_SECRET =
export TWITTER_ACCESS_TOKEN_KEY =
export TWITTER_ACCESS_TOKEN_SECRET =
npm start
Заключение
Как писал в начале - вариантов для алгоритма работы может быть много. Если у вас есть идеи того, как должен работать бот - на какие события реагировать и какие статусы публиковать - поделитесь в комментариях или пишите в t.me/vikxx
Чуть позднее я так же выложу референс кода, что поможет начинающим пользователям создавать ботов под свои нужды.