Twitter - соціальна мережа для роботів :) Ваші друзі чи фоловери, напевно, мають роботів, а ви навіть не здогадуєтесь про це. В цьому уроці, ми напишемо свого Twitter бота за допомогою Python та Tweepy, а потім запустимо його у вільне плавання...
Спершу нам необхідно створити Twitter App. Перейдіть за посиланням, ввійдіть у свій аккаунт, натисніть кнопку "Create new app" та заповніть всі необхідні поля.
Щойно додаток буде створено, виберіть вкладку "Keys and Access Tokens" та натисніть "Create my access tokens". У вкладці "Permissoins" виберіть поле "Read and Write".
Далі нам потрібно встановити Tweepy. Tweepy - це бібліотека, що використовується для доступу до Twitter API через Python. В командному рядку запустіть:
pip install tweepy
Тепер час робити нашого робота. Створіть новий файл helloworld.py
:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tweepy, time, sys
argfile = str(sys.argv[1])
#введіть відповідну інформацію з вашого Twitter додатку:
CONSUMER_KEY = '1234abcd...'# замініть це на ваш consumer key, залишаючи лапки
CONSUMER_SECRET = '1234abcd...'# замініть це на ваш consumer secret key
ACCESS_KEY = '1234abcd...'#замініть це на ваш access token
ACCESS_SECRET = '1234abcd...'#замініть це на ваш access token secret
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
filename=open(argfile,'r')
f=filename.readlines()
filename.close()
for line in f:
api.update_status(line)
time.sleep(900)#Tweet every 15 minutes
Це і є наш робот. Створіть новий файл helloworld.txt в тій же теці, що й helloworld.py. Введіть кілька рядків, для прикладу:
Hello World!
Я - робот!
Роботи перевершують людину у всьому!
Впевніться, чи немає пустих лінійок в тексті.
В командному рядку запустіть:
python helloworld.py helloworld.txt
Подивіться на ваш життєпис в Twitter, ви повинні побачити:
Hello world!
Тепер давайте розберемо весь цей код.
import tweepy, time, sys
Тут ми імпортуємо три пакети: tweeppy, sys, time
. Що таке tweepy
, ви вже знаєте, time
дозволяє нам планувати інтервали між твітами, і sys
- пакет, необхідний для отримання файлу з текстом твітів, як аргумент командного рядка.
Наступний рядок коду отримує переданий файл для нашого робота:
argfile = str(sys.argv[1])
Ми присвоїли назву текстового файлу(передана як аргумент) змінній argfile
. Коли ми запускаємо програму, ми передаємо інтерпретатору Python два аргументи: перший argv[0]
- helloworld.py; другий argv[1]
- helloworld.txt.
Наступний, великий, шматок коду призначений для підключення робота до вашого Twitter додатку через API:
CONSUMER_KEY = 'YOUR CONSUMER KEY'
CONSUMER_SECRET = 'YOUR CONSUMER SECRET KEY'
ACCESS_KEY = 'YOUR ACCESS KEY'
ACCESS_SECRET = 'YOUR ACCESS SECRET KEY'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
Тут ми створюємо змінну auth
, і через Tweepy авторизуємо наш аккаунт через consumer
та access
ключі. Далі ми створюємо змінну api
, і через Tweepy приєднуємось до Twitter API через auth
.
Після цього ми відкриваємо і зчитуємо файл helloworld.txt:
filename=open(argfile,'r')
f=filename.readlines()
filename.close()
Ми використовуємо функцію open()
для того, щоб відкрити файл, записаний в змінну argfile
. Параметр 'r'
вказує на те, що нам необхідно лише прочитати файл. Далі ми всі дані, які є в файлі, записуємо порядково в змінну f
. І закриваємо файл.
Останній блок коду (де відбувається вся 'магія'):
for line in f:
api.update_status(status=line)
time.sleep(900)#Tweet every 15 minutes
Використовуючи цикл for
, ми ітеруємо кожен рядок, записаний в змінній f
, і надсилаємо твіт використовуючи api.update_status(line)
. Тоді ми кажемо нашому роботу подрімати 15 хвилин, і далі писати твіти...
Ще немає коментарів