ساخت یک بات توییتری با پایتون

یک بات توییتری می‌تواند کاربردهای متفاوتی داشته باشد. در این پست آموزش ساخت یک بات را شرح داده‌ام که نمونه‌ی مشابه آن در اکانت توییتر خودم مشغول به کار است. رباتی که من ساخته‌ام کلمه‌ی کلیدی خواب دیدم را جستجو می‌کند و توییت‌هایی را که شامل این کلمه‌ی کلیدی باشند ریتوییت می‌نماید. در این پست می‌خواهم بات مشابهی را آموزش بدهم که طی آن بر طبق کلمات کلیدی توییت‌هایی لایک و یا ریتوییت می‌شوند.

ابتدا لازم است که tweepy را دانلود کنیم. توییپی کتابخانه‌ای است که بوسیله‌ی آن می‌توان با توییتر کار کرد. عبارت زیر را در کنسول تایپ می‌کنیم.

pip install tweepy

سپس توییپی را در بالای فایلتان به نام bot.py ایمپورت می‌کنیم.

import tweepy

مجوزها

سپس لازم است که اکانت توییتر مدنظرتان را به کد پایتون متصل نماییم.
به apps.twitter.com بروید و با اکانت‌تان وارد شوید. یک اپلیکیشن توییتر ایجاد کنید تا  Consumer Key, Consumer Secret, Access Token, Access Token Secret ایجاد شود. اکنون شما برای شروع کردن آماده‌اید. شما می‌توانید زیر عبارات ایمپورت این متغیرها را مقداردهی کنید؛ ولی بهتر است که به دلیل مسائل امنیتی و دسترسی‌پذیری آن‌ها را در یک فایل جداگانه به نام credentials.py ذخیره کنید؛ چراکه دسترسی به این متغیرها مثل دسترسی به پسورد توییتر شماست.

consumer_key = 'your_consumer_key'
consumer_secret = 'your_consumer_secret'
access_token = 'your_access_token'
access_token_secret = 'your_access_token_secret'

بات توییتری که لایک، فالو و ریتوییت می‌کند

با استفاده از کتابخانه‌ی Tweepy، ما می‌توانیم بات توییتری را پیکربندی کنیم که بتواند توییت‌های دیگران را لایک و یا ریتوییت کند؛ همچنین دیگران را فالو نماید. در این مثال ما بر اساس کوئری سرچ در قالب هشتگ این کارها را می‌کنیم.

اکنون مجوزهای توییتر را به فایل اصلی به نام bot.py وارد می‌کنیم. همچنین سه خط دیگر هم برای تعامل کردن با متغیرهای مجوز بوسیله‌ی کتابخانه‌ی توییپی تایپ می‌کنیم.

# Import our Twitter credentials from credentials.py
from credentials import *

# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

برای شروع از آسان‌ترین کار شروع می‌کنیم. فالو کردن افرادی که اکانت ما را فالو می‌کنند. برای این‌کار یک حلقه ایجاد می‌کنیم که در فالوئرها بگردد و سپس تک‌تک آن‌ها را فالو کند.

for follower in tweepy.Cursor(api.followers).items():
    follower.follow()
    print ("Followed everyone that is following " + user.name)

در این مرحله برای اینکه مطمئن شوید کدتان کار می‌کند وارد اکانت توییتر شوید و ببینید که تعداد فالویینگ‌ افزایش پیدا کرده.

بمنظور اینکه توییتی را ریتوییت کند از یک حلقه‌ی for و عبارتی مثل زیر استفاده می‌کنیم. کلمه‌ی کلیدی مدنظر را جایگزین Keyword می‌کنیم. همچنین در این نمونه با ۵ توییت سروکار داریم که می‌توانیم تعداد آن را کمتر و یا بیشتر کنیم.

search = "Keyword"
numberOfTweets = "5"
for tweet in tweepy.Cursor(api.search, search).items(numberOfTweets):
    try:
        tweet.retweet()
        print('Retweeted the tweet')
    except tweepy.TweepError as e:
        print(e.reason)
    except StopIteration:
        break

بمنظور لایک کردن توییت‌ها عبارت زیر را

tweet.retweet()

با عبارت زیر عوض می‌کنیم

tweet.favorite()