কীভাবে পাইথন ব্যবহার করে টুইটার, ইনস্টাগ্রাম এবং রেডডিট বট তৈরি করবেন

কীভাবে পাইথন ব্যবহার করে টুইটার, ইনস্টাগ্রাম এবং রেডডিট বট তৈরি করবেন

এটা 2019. আপনি বট সম্পর্কে শুনেছেন। চ্যাট বট, ইমেল বট, ওয়েব স্ক্র্যাপিং বট এবং সোশ্যাল মিডিয়া বট রয়েছে। আপনি কি এখনও একটি বট তৈরি করেছেন? এটা আশ্চর্যজনকভাবে সহজ। সম্ভবত কেন তারা সব জায়গায়। আমাদের বট অধিপতিদের তাদের পদে যোগদান করে আলিঙ্গন করুন।





এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে আপনি স্বয়ংক্রিয়ভাবে আপনার টুইটার, রেডডিট এবং ইনস্টাগ্রাম অ্যাকাউন্টগুলির সাথে যোগাযোগের জন্য পাইথন ব্যবহার করতে পারেন।





পাইথনের সাথে কাজ করা

এই ওয়াক-থ্রু পাইথনকে তার পছন্দের ভাষা হিসেবে ব্যবহার করে। পাইথনের ব্যবহারের সুবিধাজনক সুবিধা অন্যান্য ভাষার তুলনায় যে কোনো গতির ঘাটতির চেয়ে বেশি। আপনি প্রায় যেকোনো OS এর জন্য Python ডাউনলোড করতে পারেন। ব্যবহার করুন আপনার পছন্দের সম্পাদক





পাইথন বিতরণগুলি ইউটিলিটি নামে পরিচিত

নতুন পিসিতে কি ইনস্টল করবেন
pip

। লেখার সময়, 168,000 এরও বেশি লাইব্রেরি ব্যবহার করে ডাউনলোড করা যায়



pip

। আপনি আজ যে বটগুলি তৈরি করবেন তার জন্য কেবল তিনটি প্রয়োজন।

কমান্ড লাইন থেকে, আপনি এই তিনটি লাইন ব্যবহার করে প্রয়োজনীয় লাইব্রেরিগুলি ইনস্টল করতে পারেন।





pip install --upgrade InstagramAPI
pip install --upgrade tweepy pip install --upgrade praw

এখন আপনি যেখানে প্রয়োজন সেখানে এই লাইব্রেরিগুলি আমদানি করতে সক্ষম হবেন।

অ্যাপ্লিকেশন কী এবং গোপনীয়তা পাওয়া

একজন জ্ঞানী দার্শনিক একবার বলেছিলেন 'গোপনীয়তা, গোপনীয়তা কোন মজা নয়। গোপন, গোপনীয়তা কাউকে আঘাত করে। ' সম্মানজনকভাবে, বটগুলির গোপনীয়তার প্রয়োজন। আপনার বট সেট আপ করার পরবর্তী ধাপ হল তাদের প্রতিটি সাইটের API- এ অ্যাক্সেসের অনুমতি দেওয়া। এটি করার জন্য, আপনার একটি অ্যাপ্লিকেশন কী বা গোপনীয়তা প্রয়োজন হবে।





আপনি যখন কী, গোপনীয়তা, টোকেন এবং আরও অনেক কিছু সংগ্রহ করেন (একটি মজার গেমের মতো শোনাচ্ছে!), সেগুলিকে 'credentials.py' নামে একটি একক ফাইলে রাখুন। এই ফাইলটি দেখতে এরকম কিছু হবে:

# keys
twitter_consumer_key = ''
twitter_consumer_secret = ''
twitter_access_token = ''
twitter_access_token_secret = ''
reddit_client_id = ''
reddit_client_secret = ''
reddit_user_agent = ''
instagram_client_id = ''
instagram_client_secret = ''

অত্যন্ত গুরুত্বপূর্ণ গোপনীয়তা পরামর্শ: এই ফাইলটিকে কোন উৎস নিয়ন্ত্রণ (যেমন Git) করবেন না। আপনি চান না যে অন্য কারো কাছে এই চাবি এবং গোপনীয়তা থাকুক। তাদের একটি কারণে গোপন বলা হয়।

টুইটার অ্যাক্সেস সেট আপ করা হচ্ছে

Node.js দিয়ে একটি টুইটার বট স্থাপনের জন্য আমাদের নির্দেশিকা দেখুন কিভাবে আপনার টুইটার অ্যাপ তৈরি করতে হবে। মনে রাখবেন যে টুইটার আপনার অ্যাকাউন্ট যাচাই করতে কিছু সময় নেবে এবং নিশ্চিত করবে যে আপনি একটি স্প্যাম অ্যাকাউন্ট তৈরি করছেন না।

এই ধাপগুলি অনুসরণ করার পরে, আপনার credentials.py ফাইলে ভোক্তা কী, ভোক্তা গোপনীয়তা, অ্যাক্সেস টোকেন এবং অ্যাক্সেস টোকেন গোপনে অনুলিপি করুন।

Reddit অ্যাক্সেস সেট আপ

আপনার রেডডিট ক্লায়েন্ট আইডি এবং গোপনীয়তা টুইটারের অনুরূপ। আপনাকে রেডডিট ব্যবহারকারী এজেন্ট হিসাবে একটি অ্যাপ নিবন্ধন করতে হবে। এটি করার পরে, আপনার জীবনবৃত্তান্তে অবশ্যই 'রেডডিট ইউজার এজেন্ট' লাগানো উচিত।

সাইন ইন করুন আপনার পছন্দের Reddit অ্যাকাউন্টে। এ নেভিগেট করুন অ্যাপ্লিকেশন পছন্দ পৃষ্ঠা এবং অন্য অ্যাপ তৈরি করতে ক্লিক করুন । আপনার ব্যবহারকারী এজেন্টের কিছু দরকারী নাম দিন। স্ক্রিপ্ট নির্বাচন করুন আপনার অ্যাপের উদ্দেশ্যে। প্রায় ইউআরএল ফাঁকা রাখা যেতে পারে। পুনirectনির্দেশ বাক্সের জন্য যেকোনো ঠিকানা পূরণ করুন।

তোমার পরে ক্রিয়েট অ্যাপ টিপুন , নিচের স্ক্রিনটি আপনার অ্যাপের একটি তালিকা সহ আপনার সামনে উপস্থাপন করা হবে। আপনার আবেদনের নামের অধীনে অঙ্কগুলি ক্লায়েন্ট আইডি প্রতিনিধিত্ব করে এবং ক্লায়েন্ট সিক্রেট তার নীচে অবস্থিত। এই মানগুলিকে আপনার credentials.py ফাইলে অনুলিপি করুন।

ইনস্টাগ্রাম অ্যাক্সেস সেট আপ করা হচ্ছে

ইনস্টাগ্রাম অ্যাক্সেস টুইটার এবং রেডডিট থেকে আলাদা। একটি অ্যাপ নিবন্ধনের পরিবর্তে, আপনি আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করুন। আমি একটি পৃথক পাবলিক অ্যাকাউন্ট তৈরি করার পরামর্শ দিচ্ছি এবং আপনার বটের জন্য সেই বিবরণগুলি ব্যবহার করছি।

Praw দিয়ে Reddit অ্যাক্সেস করা

চিংড়ি ব্যবহার একটি দুই ধাপের প্রক্রিয়া। প্রথমত, প্রবেশাধিকার সেট করা হল চিংড়ির রেডডিট পদ্ধতিতে একটি একক ফাংশন কল। তারপর, প্রারম্ভিক বস্তু ব্যবহার করে, একটি subreddit অনুসন্ধান নতুন () পদ্ধতি ব্যবহার করে সম্পন্ন করা হয়।

import praw
from credentials import *
my_reddit = praw.Reddit(client_id=reddit_client_id, client_secret=reddit_client_secret, user_agent=reddit_user_agent)
sub_name = 'technology'
max_posts = 10
for submission in my_reddit.subreddit(sub_name).new(limit=max_posts):
print(submission.title)

পরিবর্তন

sub_name

বিভিন্ন subreddits থেকে পোস্ট পেতে পরিবর্তনশীল। পরিবর্তে

new()

, অন্যান্য পদ্ধতি যেমন

hot()

পদ পেতে পাওয়া যায়।

InstagramAPI এর মাধ্যমে Instagram হ্যাশট্যাগ অনুসন্ধান করা হচ্ছে

ইনস্টাগ্রাম এপিআই ব্যবহারের প্রথম ধাপ হল ক্লায়েন্ট আইডি এবং গোপনীয়তার সাথে একটি বস্তু স্থাপন করা। এর পরে সরাসরি, সেটআপ সম্পূর্ণ করতে লগইন () পদ্ধতিতে কল করুন।

from InstagramAPI import InstagramAPI
from credentials import instagram_client_id, instagram_client_secret
my_insta_api = InstagramAPI(instagram_client_id,instagram_client_secret)
my_insta_api.login()

এপিআই ব্যবহার করা তার রেডডিট প্রতিপক্ষের তুলনায় একটু বেশি জটিল। এই উদাহরণে, স্ক্রিপ্টটি Instagram থেকে একটি খুব বড় JSON প্রতিক্রিয়া বস্তু পেতে getHashtagFeed ব্যবহার করে।

প্রতিক্রিয়ার মাধ্যমে অনুসন্ধান করা হচ্ছে, স্ক্রিপ্টটি ক্যাপশন টেক্সট খুঁজছে এবং তারপর এটি দেখতে স্ক্রিনে প্রিন্ট করে।

get_hashtag = my_insta_api.getHashtagFeed(hashtag)
if get_hashtag != False:
for item in my_insta_api.LastJson['items']:
if 'caption' in item.keys() and 'text' in item['caption'].keys():
caption = item['caption']['text']
print(caption)

সোশ্যাল মিডিয়ায় ছবি যোগ করুন

সামনের দিকে, আপনি আপনার স্ক্রিপ্টটি এই হ্যাশট্যাগ ফিডে ছবি পেতে চান। এটি করার জন্য, JSON প্রতিক্রিয়ার মাধ্যমে লুপ করুন এবং প্রতিটি পোস্টের সাথে যুক্ত মিডিয়া খুঁজুন। JSON প্রতিক্রিয়া থেকে তথ্য বের করার জন্য এখানে একটি বাস্তবায়ন:

def get_images_from_hashtag(hashtag, num_images):
images = []
get_hashtag = my_insta_api.getHashtagFeed(hashtag)
if get_hashtag == False:
return images
for item in my_insta_api.LastJson['items']:
if item['media_type'] == 1 and 'image_versions2' in item.keys():
candidate = get_largest_image(item['image_versions2']['candidates'])
# get image
filename = self.save_image_from_candidate(candidate['url'])
if filename != '':
# get status, save as tuple
caption = get_caption(item)
images.append((filename, caption))
if len(images) >= num_images:
break
return images

এই ফাংশনে দুটি সাহায্যকারী ফাংশন ব্যবহার করা হয়। ইনস্টাগ্রাম JSON প্রতিক্রিয়াতে 'প্রার্থীদের' ছবির একটি তালিকা পাঠায়। এই ছবিগুলির মধ্যে সবচেয়ে বড় চয়ন করুন যাতে মিডিয়া তার সর্বোচ্চ রেজোলিউশনে প্রদর্শিত হয়।

def get_largest_image(candidates):
candidate = {}
pixels = 0
for cand in candidates:
# pick the highest resolution one
res = cand['height']*cand['width']
if res > pixels:
pixels = res
candidate = cand
return candidate

দ্বিতীয়ত, একবার ছবির লিঙ্ক পাওয়া গেলে, আপনি একটি ফাইলে বিষয়বস্তু লিখে ছবিটি স্থানীয়ভাবে সংরক্ষণ করতে পারেন। ব্যবহার করে

requests

লাইব্রেরি এটিকে সহজ করে তোলে।

def save_image_from_candidate(url):
filename = ''
response = requests.get(url)
# check the response status code, 200 means good
if response.status_code == 200:
filename = url.split('/')[-1].split('?')[0]
with open(filename, 'wb') as f:
f.write(response.content)
return filename

টুইপি দিয়ে মিডিয়াকে টুইট করা

প্রথমে, আপনার গোপনীয়তা এবং কীগুলি ব্যবহার করে আপনাকে টুইটার অ্যাক্সেস সেট আপ করতে হবে।

import tweepy
from credentials import *
tw_auth = tweepy.OAuthHandler(twitter_consumer_key, twitter_consumer_secret)
tw_auth.set_access_token(twitter_access_token, twitter_access_token_secret)
tw_api = tweepy.API(tw_auth)

একটি জেনেরিক রিটুইট বট তৈরি করা মাত্র কয়েকটি লাইনে সম্পন্ন করা হয়।

for tweet in tweepy.Cursor(tw_api.search,q='MakeUseOf').items(10):
try:
tweet.favorite()
tweet.retweet()
time.sleep(2)
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break

এই লাইব্রেরী দিয়ে আরো অনেক কাজ করা যায়। এই পথচলা শেষ করতে, আপনি ব্যবহার করতে পারেন

get_images_from_hashtag

ইন্সটাগ্রাম বট থেকে ফাংশনটি আগে ছবি এবং ক্যাপশন টুইট করার জন্য তৈরি করা হয়েছিল।

উপরন্তু, আপনার টুইটার বট নতুন পোস্টের জন্য Reddit অনুসন্ধান করতে পারে এবং সেগুলিও টুইট করতে পারে। এই দুটি কার্যকারিতা একসাথে রাখতে এইরকম দেখাচ্ছে:

# use r/ for reddit search
# and # for instagram search
hashtag = 'technology'
num_posts = 5
# tweet reddit info
reddit_posts = my_reddit.subreddit(hashtag).new(limit=num_posts)
for submission in reddit_posts:
title = submission.title
url = 'www.reddit.com{}'.format(submission.permalink)
tweet_str = f'Reddit r/{sub} update:
{title} #{sub} {url}'
tweet_str = trim_to_280(tweet_str)
tw_api.update(tweet_str)
# tweet instagram media
media_info = get_images_from_hashtag(hashtag, num_posts)
for (filename, message) in media_info:
try:
tweet_str = trim_to_280(message)
tw_api.update_with_media(filename, status=tweet_str)
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break

আপনার পাইথন চালিত সোশ্যাল মিডিয়া বট প্রস্তুত!

সুতরাং, এখন আপনি একগুচ্ছ কোড পেয়েছেন যা মিডিয়াকে একটি সাইট থেকে অন্য সাইটগুলিতে পোস্ট করে। আপনি মেশাতে এবং মেলাতে পারেন। টুইট টানুন এবং Reddit এ পোস্ট করুন। সাবরেডিটগুলিতে পোস্ট করার জন্য ইনস্টাগ্রামের ছবি সংগ্রহ করুন। একটি বট তৈরি করুন এবং আসল ইন্টারনেটের একটি অংশ হোন।

পরিশেষে, এই প্রক্রিয়াটি সম্পূর্ণরূপে স্বয়ংক্রিয় করার জন্য, আপনি আপনার বটগুলি একটি সার্ভারে একটি লুপে চালাতে চান। এটি একটি সময়সূচী সহ আপনার নিজের কম্পিউটারে হতে পারে। অথবা, সেই পুরানো রাস্পবেরি পাই কে ধুলো দিন যা আপনার পায়খানাতে রয়েছে এবং পাইয়ের জন্য এই মিষ্টি টুইটার বট প্রকল্পগুলি দেখুন।

শেয়ার করুন শেয়ার করুন টুইট ইমেইল এফবিআই কেন মধু রans্যানসমওয়্যারের জন্য সতর্কতা জারি করেছে

এফবিআই একটি বিশেষ করে র‍্যানসমওয়্যারের কদর্য স্ট্রেন সম্পর্কে একটি সতর্কতা জারি করেছে। এখানে আপনাকে বিশেষ করে Hive ransomware সম্পর্কে সতর্ক থাকতে হবে।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • পাইথন
  • সোশ্যাল মিডিয়া বটস
  • কোডিং টিউটোরিয়াল
লেখক সম্পর্কে টম জনসেন(3 নিবন্ধ প্রকাশিত)

টম ফ্লোরিডা থেকে একজন সফটওয়্যার ইঞ্জিনিয়ার (চিৎকার করে ফ্লোরিডা ম্যান) লেখার প্রতি আগ্রহ, কলেজ ফুটবল (গো গেটরস!), ক্রসফিট এবং অক্সফোর্ড কমা।

টম জনসেনের কাছ থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন