Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
vik
8 лет назад

Автоматическая трансляция событий с вашего аккаунта 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

Чуть позднее я так же выложу референс кода, что поможет начинающим пользователям создавать ботов под свои нужды.

14
1184.519 GOLOS
На Golos с January 2017
Комментарии (14)
Сортировать по:
Сначала старые