Как создать фото-твиттер-бота для Twitter с Raspberry Pi и Node.js

Ищете способ сделать Twitter более полезным, хотя бы для других людей? Одним из способов является создание автоматизированного бота в Твиттере, который размещает изображения с полезными описаниями Вы можете сделать это вручную … или вы можете собрать его с Node.js и разместить его на Raspberry Pi. Читайте дальше, чтобы узнать как.

Зачем строить Twitter-бот?

Чирикать фото с ботом

Если вы когда-либо были в Твиттере и видели аккаунты, в которых публикуются фотографии, факты, мультфильмы и т. Д., То, скорее всего, они автоматизированы. Это отличный способ собрать аудиторию людей, заинтересованных в той же теме.

Но есть и другая причина, за исключением ретвитов и следующих. Создание бота в Твиттере научит вас некоторым полезным навыкам программирования. Ранее мы рассматривали, как создать базового бота в Twitter с помощью Python.

(также на Raspberry Pi), но на этот раз мы используем другой подход.

В этом проекте мы собираемся использовать Node.js, чтобы создать бот для твитинга фотографий на Raspberry Pi. На фотографиях будут фотографии времен Первой мировой войны, сопровождаемые коротким предложением и атрибуцией). Эта информация будет храниться в массиве, базовой базе данных

,

Начните: создайте свою базу данных

Если вы хотите создать фото-бота, вам нужно начать с сбора изображений, которыми вы хотите поделиться. Это должны быть ваши собственные изображения, которые вы приобрели по лицензии Creative Commons или по какой-либо другой лицензии с открытым исходным кодом.

Вы также должны помнить об атрибуции и другой информации, которую вы хотите использовать с изображениями. Мы вернемся к этой информации позже, когда бот будет запущен.

Установите Node.js на Raspbian

Начните с установки Node.js. У вас уже должен быть запущен Raspberry Pi с установленным Raspbian

, Для этого проекта мы рекомендуем Raspberry Pi 2 или более позднюю версию; проект был опробован на Raspberry Pi 3 B +

,

В терминале (или через SSH

), обновите список системных пакетов и обновите до последней версии:

sudo apt-get update
sudo apt-get dist-upgrade

Следуйте инструкциям на экране и дождитесь обновления Pi. Как только вы закончите, перезагрузитесь с

sudo reboot

Когда вы закончите, используйте curl для загрузки Node.js:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Далее установите его с

sudo apt-get install -y nodejs

Когда все будет сделано, запустите проверку, чтобы убедиться, что программное обеспечение установлено правильно. Проще всего проверить номер версии:

node -v

Ответ должен быть что-то вроде v8.11.3 (или выше). Если вы видите что-то подобное, вы можете быть уверены, что Node.js готов к использованию.

Создай свой щебетать бот

Следующим этапом является ввод кода, который создаст бота. Начните с создания каталога:

mkdir twitterbot

Затем измените его на новый каталог для вашего бота:

cd twitterbot

Здесь создайте файл с именем server.js

sudo nano server.js

В этом файле введите одну строку:

console.log('I am a Twitter bot!');

Нажмите Ctrl + X сохранить и выйти, затем запустить скрипт:

node '/home/pi/twitterbot/server.js'

Это должно вернуть фразу «Я бот Twitter!». Теперь, когда вы подтвердили, что это работает, пришло время установить библиотеку Twit с НПМ ( Node Package Manager). Убедитесь, что это установлено, введя:

npm -v

Опять же, вы должны увидеть номер версии.

Следуйте этому с помощью:

npm init

Это начинается с запроса информации о приложении Node.js, которое вы создаете. По умолчанию отображаются параметры (как это), поэтому вы можете просто нажать Enter, чтобы принять их. Вы также можете ввести свои данные. Как только эта конфигурация будет завершена, вам будет предложено подтвердить детали с помощью «да».

Следующим этапом является установка модуля Twit из npm.

npm install twit --save

Подождите, пока файлы загрузятся в подкаталог node_modules. После этого снова откройте файл server.js в nano.

sudo nano server.js

Здесь удалите команду, которую вы ввели ранее, заменив ее на:

var fs = require('fs'),
path = require('path'),
Twit = require('twit'),
config = require(path.join(__dirname, 'config.js'));

Сохраните и выйдите, как раньше.

Создать приложение для Twitter

Чтобы создать работающего бота в Twitter, вам нужно создать приложение для Twitter. Это простой процесс, который требует, чтобы вы сначала зарегистрировались в новой учетной записи Twitter. Обратите внимание, что для этого также требуется номер телефона для проверки учетной записи, и как только это будет сделано, зайдите на developer.twitter.com, чтобы создать приложение.

Если у вас нет учетной записи разработчика, это может занять некоторое время, так как требуется определенное количество заполнения формы. Это шаг, который Twitter предпринял, чтобы избежать спама, поэтому не торопитесь и точно отвечайте на вопросы.

Нажмите Создать приложение, и добавьте детали в соответствии с просьбой. На момент написания этой статьи система разработчика подверглась капитальному ремонту, поэтому вам, возможно, придется подождать несколько дней (и ответить на некоторые дополнительные вопросы).

Создать приложение в Twitter

Затем переключитесь на Ключи и токены вкладка, и под права доступа Найти Разрешение на доступ и убедитесь, что он установлен на Прочти и напиши (использование редактировать если не). Затем переключитесь на Ключи и жетоны и запишите следующее:

  • Ключ потребителя
  • Потребительский секрет

Под токеном доступа нажмите Создайте чтобы генерировать:

  • Токен доступа
  • Секрет токена доступа

Это ключи API, которые вам понадобятся для предоставления боту доступа к вашей учетной записи Twitter.

Вернувшись в командную строку, создайте config.js в nano:

sudo nano config.js

Добавьте следующее

var config = {
consumer_key:         'XXXXX',
consumer_secret:      'XXXXX',
access_token:         'XXXXX',
access_token_secret:  'XXXXX'
}
module.exports = config;

Там, где написано «XXXXX», подставьте свои собственные соответствующие данные ключа API.

Добавьте ваши ключевые строки, созданные Twitter в файл конфигурации

Сохраните и выйдите, затем откройте server.js.

sudo nano server.js

Здесь добавьте следующие строки в конец файла:

var T = new Twit(config);
T.post('statuses/update', { status: 'My first tweet!' }, function(err, data, response) {
console.log(data)
});

Это должно выглядеть так:

Этот код предложит отправить твит.

Снова сохраните и выйдите, затем в командной строке введите

node server.js

Откройте свою учетную запись Twitter в браузере, чтобы увидеть результаты:

Тестовый твит, отправленный с использованием кода Node.js

Вы подтвердили, что бот пишет в Твиттере, поэтому пришло время заняться чем-нибудь!

Создайте свою папку изображений

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

Затем вернитесь к документу server.js:

sudo nano server.js

Здесь удалите код, отправивший твит, строку, начинающуюся с T.post («statuses / update»).

Затем замените это на функцию, называемую random_from_array. Это выберет изображение в случайном порядке из папки изображений.

function random_from_array(images){
return images[Math.floor(Math.random() * images.length)];
}

Как только вы это сделаете, вам нужно будет добавить вторую функцию, upload_random_image:

function upload_random_image(images){
console.log('Opening an image...');
var image_path = path.join(__dirname, '/images/' + random_from_array(images)),
b64content = fs.readFileSync(image_path, { encoding: 'base64' });
console.log('Uploading an image...');
T.post('media/upload', { media_data: b64content }, function (err, data, response) {
if (err){
console.log('ERROR:');
console.log(err);
}
else{
console.log('Image uploaded!');
console.log('Now tweeting it...');
T.post('statuses/update', {
media_ids: new Array(data.media_id_string)
},
function(err, data, response) {
if (err){
console.log('ERROR:');
console.log(err);
}
else{
console.log('Posted an image!');
}
}
);
}
});
}

Эта функция случайным образом выбирает изображение из папки с изображениями и после выбора загружается в Twitter с помощью API media / upload.

Затем добавьте следующий код. Он найдет каталог с изображениями и возьмет из него изображение, публикуя его случайным образом каждые 60 секунд. Вы можете (и должны) отредактировать это время, которое представлено в коде с помощью рисунка 60000. Рекомендуется использовать более длинные промежутки.

    setInterval(function(){
upload_random_image(images);
}, 60000);
}
});

Сохранить это с Ctrl + Икс, тогда да, чтобы сохранить. (Вы можете найти полный код этого проекта на GitHub).

Разовое использование узел server.js Затем команда предложит фотографии начать твит! (Если вам нужно закончить сообщения, нажмите Ctrl + Z отменить скрипт server.js.)

Добавление текста к вашей фотографии Tweets

Если вам нужно добавить текст к вашим изображениям, это можно сделать с помощью массива. Массив будет ссылаться на имена файлов изображений и перечислять текст, который должен быть добавлен. Например, вы можете добавить ссылку на изображения, которые вы не взяли. Или вы можете добавить некоторые факты или цитату.

Бот Twitter может публиковать фотографии и текст

Начните с создания images.js

sudo nano images.js

Здесь добавьте следующий код. Это массив с двумя элементами, файлом и источником. Они содержат имя файла изображения и атрибуцию (обычно URL).

var images = [
{
file: 'image0001.png',
source: 'http://www.example.com/image0001.png'
},
{
file: 'image0002.png',
source: 'http://www.example.com/image0002.png'
},
]

Повторите по мере необходимости для каждого изображения, затем закройте файл images.js:

module.exports = images;

Сохраните и закройте файл, затем снова откройте server.js и добавьте его в список переменных:

images = require(path.join(__dirname, 'images.js'));

Сохраните и выйдите, затем перезапустите Twitter-бот с узел server.js команда еще раз.

Вы также можете использовать поле «источник», чтобы добавить текст, объясняющий фон изображения. Это может быть включено вместе с URL.

Ваш первый Twitter-бот, готовый к повторному использованию!

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

Подводя итог, процесс:

  • Собери свои фото
  • Установить Node.js
  • Создайте своего Twitter-бота
  • Подать заявку на статус разработчика в Twitter
  • Создать приложение для Twitter
  • Добавить массив атрибуции
  • Начните твит!

Возможно, лучшая вещь в этом состоит в том, что код может использоваться для чирикания фотографий, фактов и атрибутов буквально по любому предмету.

Хотите знать, какие другие боты вы могли бы запустить с подобной настройкой? Проверьте наш список лучших проектов бота Twitter для Raspberry Pi

!

Ссылка на основную публикацию
Adblock
detector