अपने खुद के सोशल मीडिया बॉट्स बनाना चाहते हैं?  पाइथन का उपयोग करके ट्विटर, इंस्टाग्राम और रेडिट पर ऑटो-पोस्ट अपडेट करने का तरीका यहां बताया गया है।

ट्विटर, इंस्टाग्राम और रेडिट बॉट्स को पायथन का उपयोग कैसे करें

विज्ञापन यह 2019 है। आपने बॉट्स के बारे में सुना है। चैट बॉट, ईमेल बॉट, वेब स्क्रैपिंग बॉट और, सोशल मीडिया बॉट हैं। क्या आपने अभी तक एक बॉट बनाया है? यह आश्चर्यजनक रूप से आसान है। संभवतः वे सभी जगह क्यों हैं। उनके रैंक में शामिल होकर हमारे बॉट अधिपति को गले लगाओ। इस लेख में, मैं आपको दिखाता हूं कि आप अपने ट्विटर, रेडिट और इंस्टाग्राम खातों के साथ स्वचालित रूप से बातची

विज्ञापन

यह 2019 है। आपने बॉट्स के बारे में सुना है। चैट बॉट, ईमेल बॉट, वेब स्क्रैपिंग बॉट और, सोशल मीडिया बॉट हैं। क्या आपने अभी तक एक बॉट बनाया है? यह आश्चर्यजनक रूप से आसान है। संभवतः वे सभी जगह क्यों हैं। उनके रैंक में शामिल होकर हमारे बॉट अधिपति को गले लगाओ।

इस लेख में, मैं आपको दिखाता हूं कि आप अपने ट्विटर, रेडिट और इंस्टाग्राम खातों के साथ स्वचालित रूप से बातचीत करने के लिए पायथन का लाभ कैसे उठा सकते हैं।

अजगर के साथ काम करना

यह वॉक-थ्रू अपनी पसंद की भाषा के रूप में पायथन का उपयोग करता है 6 कारण क्यों पायथन भविष्य की प्रोग्रामिंग भाषा है 6 कारण क्यों पायथन भविष्य की प्रोग्रामिंग भाषा सीखना चाहते हैं या अपने प्रोग्रामिंग कौशल का विस्तार करना चाहते हैं? यहाँ क्यों पायथन इस साल सीखने के लिए सबसे अच्छी प्रोग्रामिंग भाषा है। अधिक पढ़ें । पायथन की सहजता से होने वाले फायदे अन्य भाषाओं की तुलना में किसी भी गति की कमियों को दूर करते हैं। आप लगभग किसी भी ओएस के लिए पायथन डाउनलोड कर सकते हैं। अपनी पसंद के संपादक का उपयोग करें।

पायथन वितरण pip नामक उपयोगिता से जुड़ा हुआ है। लेखन के समय, pip का उपयोग कर डाउनलोड करने के लिए 168, 000 से अधिक पुस्तकालय उपलब्ध हैं। बॉट्स के लिए आप आज बनाएंगे, केवल तीन की आवश्यकता है।

कमांड लाइन से, आप इन तीन लाइनों का उपयोग करके आवश्यक लाइब्रेरी स्थापित कर सकते हैं।

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

अब आप जरूरत पड़ने पर इन पुस्तकालयों का आयात कर सकेंगे।

अनुप्रयोग कुंजी और राज प्राप्त करना

एक बुद्धिमान दार्शनिक ने एक बार कहा था “राज, रहस्य कोई मज़ा नहीं है। राज़, रहस्य किसी को चोट पहुँचाते हैं। ”सम्मानपूर्वक, बॉट्स को रहस्यों की आवश्यकता होती है। अपने बॉट्स स्थापित करने में अगला कदम उन्हें प्रत्येक साइट के एपीआई तक पहुंचने की अनुमति देना है। ऐसा करने के लिए, आपको एक एप्लिकेशन कुंजी या गुप्त की आवश्यकता होगी।

जैसे ही आप चाबियाँ, रहस्य, टोकन और अधिक (एक मजेदार गेम की तरह लगता है!) इकट्ठा करते हैं, उन सभी को "क्रेडेंशियलपी" नामक एक एकल फ़ाइल में डालें। यह फ़ाइल कुछ इस तरह दिखाई देगी:

 # 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 के साथ एक ट्विटर बॉट स्थापित करने के लिए हमारे गाइड की जाँच करें। आपको दिखाएगा कि कैसे अपना ट्विटर ऐप बनाएं Node.js Node.js के साथ आरंभ करें और एक ट्विटर बॉट बनाएं जो केवल रास्पबेरी पाई का उपयोग करके फ़ोटो और जानकारी ट्वीट करता है! अधिक पढ़ें । ध्यान दें कि ट्विटर को आपके खाते को सत्यापित करने में कुछ समय लगेगा और यह सुनिश्चित करेगा कि आप एक स्पैम खाता नहीं बना रहे हैं।

उन चरणों का पालन करने के बाद, अपनी क्रेडेंशियल फ़ाइल में उपभोक्ता कुंजी, उपभोक्ता रहस्य, एक्सेस टोकन और एक्सेस टोकन कॉपी करें।

Reddit एक्सेस सेट करना

आपकी Reddit क्लाइंट आईडी और सीक्रेट प्राप्त करना ट्विटर के समान है। आपको Reddit User Agent के रूप में एक ऐप रजिस्टर करना होगा। ऐसा करने के बाद, आपको अपने रिज्यूमे पर "Reddit User Agent" डालना चाहिए।

अपने चयन के Reddit खाते में साइन इन करें । एप्लिकेशन प्राथमिकताएं पृष्ठ पर जाएं और एक अन्य एप्लिकेशन बनाएं पर क्लिक करें । अपने उपयोगकर्ता एजेंट को कुछ उपयोगी नाम दें। अपने ऐप के उद्देश्य के लिए स्क्रिप्ट का चयन करें । URL के बारे में रिक्त छोड़ा जा सकता है। रीडायरेक्ट बॉक्स के लिए किसी भी पते पर भरें।

रेडिट ऐप बॉट पायथन

आपके द्वारा एप्लिकेशन बनाने के बाद, निम्न स्क्रीन आपके ऐप्स की सूची के साथ आपके सामने प्रस्तुत की जाएगी। आपके एप्लिकेशन नाम के अंतर्गत आने वाले अंक क्लाइंट आईडी का प्रतिनिधित्व करते हैं और क्लाइंट रहस्य उसके नीचे स्थित है। इन मूल्यों को अपनी क्रेडेंशियल फ़ाइल में कॉपी करें।

Reddit ऐप एपीआई सीक्रेट पायथन

इंस्टाग्राम एक्सेस सेट करना

इंस्टाग्राम एक्सेस ट्विटर और रेडिट से अलग है। ऐप रजिस्टर करने के बजाय, आप अपने उपयोगकर्ता नाम और पासवर्ड का उपयोग करें। मेरा सुझाव है कि एक अलग सार्वजनिक खाता बनाएं और अपने बॉट के लिए उन विवरणों का उपयोग करें।

अभिगमन के साथ रेडिट पर पहुँचना

प्रवा का उपयोग करना दो चरणों वाली प्रक्रिया है। सबसे पहले, अभिगम को सेट करना एक एकल फ़ंक्शन कॉल है, जो कि रीड ऑफ़ रेड विधि के लिए है। फिर, इनिशियलाइज्ड ऑब्जेक्ट का उपयोग करते हुए, नए () विधि का उपयोग करके एक सबरेडिट की खोज की जाती है।

 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 से पोस्ट पाने के लिए sub_name चर बदलें। new() बजाय, अन्य तरीके जैसे hot() पोस्ट प्राप्त करने के लिए उपलब्ध हैं।

इंस्टाग्राम हैशटैग वाया InstagramAPI की खोज

इंस्टाग्राम एपीआई का उपयोग करने वाला पहला कदम क्लाइंट आईडी और सीक्रेट के साथ एक ऑब्जेक्ट सेट कर रहा है। इसके तुरंत बाद, लॉगिन () विधि को पूरा करने के लिए कॉल करें।

 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() 

API का उपयोग करना उसके Reddit समकक्ष की तुलना में थोड़ा अधिक जटिल है। इस उदाहरण में, स्क्रिप्ट 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:\n\n{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 को ट्वीट और पोस्ट खींचो। Subreddits पर पोस्ट करने के लिए Instagram चित्र एकत्र करें। बॉट बनाएं और वास्तविक इंटरनेट का हिस्सा बनें।

अंत में, इस प्रक्रिया को पूरी तरह से स्वचालित करने के लिए, आप अपने बॉट को सर्वर पर लूप में चलाना चाहेंगे। यह आपके कंप्यूटर पर एक समय अनुसूचक के साथ हो सकता है। या, उस पुरानी रास्पबेरी पाई को बंद कर दें जो आपकी अलमारी में है, और रास्पबेरी पाई के लिए इन 10 मिठाई ट्विटर बॉट परियोजनाओं की जांच करें।

इसके बारे में और अधिक जानें: कोडिंग ट्यूटोरियल, पायथन, सोशल मीडिया बॉट्स।