DiyПрограммирование

Как создать фото-твиттер-бота в Twitter с помощью Raspberry Pi и Node.js

Как создать фото-твиттер-бота в Twitter с помощью Raspberry Pi и Node.js

Ищете способ сделать Twitter более полезным, хотя бы для других людей? Одним из способов является создание автоматизированного бота 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 с помощью npm ( менеджер пакетов узлов ). Убедитесь, что это установлено, введя:

 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

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

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

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

Затем вернитесь к документу 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 + X , затем нажмите Да, чтобы сохранить. (Вы можете найти полный код этого проекта на GitHub ).

Однократное использование команды node 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 с помощью команды node server.js еще раз.

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

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

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

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

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

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

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

Похожие посты
Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт

Программирование

Запустите агент SQL Server: настройте SQL Server 2012

Программирование

15 лучших бесплатных обоев дня Святого Патрика