Как создать Twitter-бот Raspberry Pi

Twitter является крупнейшим в мире хранилищем коротких сообщений от людей, которым нечего сказать, и теперь вы тоже можете внести свой вклад в этот эпический проект с помощью автоматизированного бота Twitter, работающего на Raspberry Pi. Я шучу, конечно — некоторые люди на самом деле чирикать интересные вещи

, Хотя я не один из них — я использую свою для бесстыдного продвижения продукта в обмен на бесплатные вещи, участие в конкурсах и автоматическую публикацию новых эпизодов нашего собственного подкаста Technophilia. Что угодно — мои последователи любят меня!

@ w0lfiesmith Я ненавижу твой аккаунт в Твиттере. Так много.

— Джастин Пот (@jhpot) 21 августа 2013 г.

Теперь я собираюсь добавить к полезности моего личного потока в Твиттере, когда Raspberry Pi автоматически чирикает текущую температуру процессора каждый час, а также изображение с веб-камеры!

Начиная

Этот проект использует Python; простой язык программирования, идеальный для проектов DIY. Мы начнем с установки Twython на Pi — модуль Python для взаимодействия с Twitter; настройка «приложения» в Twitter для получения ключа API; затем займитесь созданием твитов Пи от нашего имени. Это будет так весело!

Я делаю это на Raspian — но теоретически это должно работать на любой ОС на базе Linux, которую вы используете на Pi

, Если вы этого еще не сделали, убедитесь, что вы настроили SSH, чтобы мы могли удаленно входить в систему и выполнять консольные команды.

Установка Twython

Рекомендуется сначала запустить обновления. Скопируйте и вставьте следующие команды по одной — большинству потребуется подтверждение.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install twython

Регистрация приложения Twitter

Чтобы использовать API-интерфейс Twitter — то есть интерфейс REST, который мы будем использовать для публикации новых твитов и в целом для взаимодействия с Twitter за пределами веб-сайта Twitter, — нам нужно зарегистрировать новое приложение. Сделайте это по этой ссылке — вам не нужно указывать URL-адрес обратного вызова, а просто создайте веб-сайт, если хотите.

новый твиттер-приложение

Когда вы закончите, вы увидите нечто похожее на это — эти ключи уникальны для вас.

твиттер-приложение

По умолчанию приложение настроено только для чтения, поэтому мы не сможем публиковать твиты, не изменив его на Прочти и напиши. Перейдите на вкладку «Настройки» и измените Тип приложения.

чтение и запись доступа

После сохранения вернитесь к подробности вкладку и нажмите кнопку внизу, чтобы создать токен доступа OAuth — это дает вашему приложению доступ к вашей учетной записи Twitter. Обновите и оставьте страницу открытой на потом — нам нужно будет скопировать и вставить некоторые из этих ключей через минуту.

доступа токен

Создайте свой проект Python

Начните с создания нового каталога для размещения вашего проекта Tweet, затем создайте новый файл.

mkdir SillyTweeter
cd SillyTweeter
sudo nano SillyTweeter.py

Вы можете называть это как угодно, очевидно.

В появившемся текстовом редакторе скопируйте и вставьте следующее, заменив ключ потребителя соответствующим ключом со страницы приложения Twitter, которую мы оставили открытой ранее. Каждый ключ заключен в одинарные кавычки, поэтому не пропустите их. Обратите внимание, что КЛЮЧ ДОСТУПА упоминается как Токен доступа на странице приложения Twitter.

#!/usr/bin/env python
import sys
from twython import Twython
CONSUMER_KEY = '***************YOUR DATA*****************'
CONSUMER_SECRET = '***************YOUR DATA*****************'
ACCESS_KEY = '***************YOUR DATA*****************'
ACCESS_SECRET = '***************YOUR DATA*****************'
api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET)
api.update_status(status=sys.argv[1])

Нажмите Ctrl-X и нажмите Y, чтобы выйти и сохранить файл. Сделайте его исполняемым с помощью следующей команды (заменив имя файла Python, если вы выбрали что-то другое)

sudo chmod +x SillyTweeter.py

Теперь вы сможете проверить свою способность публиковать твиты следующим образом:

python SillyTweeter.py 'Hello Everyone, this is my Raspberry Pi tweeting you more nonsense'

Чирикать Ваш CPU Temp

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

Начнем с добавления другого импорта для библиотеки os:

import os

Затем добавьте следующие строки, заменив предыдущий api.update_status из приведенного выше примера.

cmd = '/opt/vc/bin/vcgencmd measure_temp'
line = os.popen(cmd).readline().strip()
temp = line.split('=')[1].split("'")[0]
api.update_status(status='My current CPU temperature is '+temp+' C')

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

Tweeting Картинки с веб-камеры

Теперь давайте сделаем что-то действительно полезное; мы собираемся твитить фото с веб-камеры. К счастью, Twython поддерживает функцию API update_status_with_media, которая упрощает работу.

Подключите веб-камеру USB к устройству и проверьте, была ли она распознана с помощью команды:

ls /dev/video*

Если ты видишь video0, тебе повезло. Я использовал камеру Playstation 3 PSEye, и она работала просто отлично, без дополнительной работы ногами.

Мы также собираемся использовать Pygame библиотеки для фотографирования; добавьте следующие строки сразу после существующих операторов импорта:

import pygame
import pygame.camera
from pygame.locals import *
pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/dev/video0",(640,480))
cam.start()
image = cam.get_image()
pygame.image.save(image,'webcam.jpg')

Короче говоря, вы инициализировали веб-камеру с определенным разрешением (вам может потребоваться настроить это действительно старая камера), сделали снимок и сохранили его в формате jpg. Мы просто будем перезаписывать один и тот же webcam.jpg при каждом запуске приложения.

Наконец, измените строку update_status следующим образом:

photo = open('webcam.jpg','rb')
api.update_status_with_media(media=photo, status='My RPi be tweeting images now => ')

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

Можете ли вы повторить это?

Twitter-бот полезен, только если он запускается несколько раз автоматически; Вы не хотите сидеть здесь и каждый час выполнять команду. Чтобы достичь этого, давайте использовать функцию планирования CRON Pi (Что такое работа CRON?

)

sudo crontab -e

Вставьте в эту строку, чтобы запускать каждый час.

*/60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py

Изменить это на * * * * * если вы хотите, чтобы он запускался каждую минуту, и будьте готовы потерять подписчиков быстрее, чем учетная запись Twitter, которая быстро теряет подписчиков.

Это на сегодня. Я рад, что внес большой вклад в огромное количество бесполезных байтов в Интернете, и я надеюсь, что вы тоже! Покажите свою признательность за этот урок чирикать это, а затем дайте нам знать, о чем будет рассказывать ваш собственный Твиттер-бот в комментариях.

Изображение предоставлено: adafruit / flickr

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