আপনি কি রুবি ব্যবহার করে একটি টুইটার অ্যাপ্লিকেশন লিখতে চান? তবে আপনি সঠিক জায়গায় আছেন!
এই পোস্টে আমি আপনাকে ধাপে ধাপে শিখাবো কীভাবে একটি প্রোগ্রাম তৈরি করতে হয় যা টুইটার API-এর সাথে ইন্টারঅ্যাক্ট করতে পারে এবং নির্দিষ্ট কীওয়ার্ড খুঁজে বের করা বা অটোমেটেড রিপ্লাই পাঠানো মতো কাজগুলো করতে পারে।
চলুন শুরু করি!
সেটআপ
সবसे প্রথম, আপনাকে twitter জেমটি ইনস্টল করতে হবে। এই ধাপটি খুব সহজ:
gem install twitter
उसके बाद आपको https://apps.twitter.com/ যেতে হবে এবং একটি নতুন অ্যাপ্লিকেশন সেটআপ করতে হবে। उसके लिए दाएँ तरफ 'Create New App' बटन पर क्लिक करना होगा।

तब फॉर्म भरें, अभी आप क्या डेटा डालते हैं उससे कोई फर्क नहीं पड़ता। मैंने इस उदाहरण के लिए क्या किया:

वेबसाइट फील्ड की चिंता न करें, आप प्लेसहोल्डर के रूप में https://example.com उपयोग कर सकते हैं।
फिर 'Yes, I agree' चेक करके ट्विटर की शर्तों को स्वीकार करें और 'Create your Twitter application' पर क्लिक करें।
अगर सब ठीक रहा तो आपको निम्नलिखित स्क्रीन दिखाई देगी:

अब आपको 'Keys and Access Tokens' पर क्लिक करना होगा। इस पेज पर आपको ट्विटर API से कनेक्ट करने के लिए आवश्यक API कीज़ मिलेंगे, जो इस सेटअप प्रक्रिया का उद्देश्य था।
अगला कदम है इस टेम्पलेट को अपने डिटेल्स से भरना:
require 'twitter' client = Twitter::REST::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end
आपको 'Generate access tokens' बटन पर क्लिक करके अंतिम दो मान प्राप्त करने होंगे।
एक बार जब आप इस सेटअप प्रक्रिया को पूरा कर लेते हैं तो आप API के साथ काम करना शुरू करने के लिए तैयार हैं।
টুইটের সাথে কাজ করা
अब आपके पास client ऑब्जेक्ट के माध्यम से संपूर्ण ट्विटर API तक पहुंच है। एक उदाहरण के रूप में, मैं निम्नलिखित करना चाहता हूं: @rubyinside अकाउंट से अंतिम 20 ट्वीट डाउनलोड करें और बाद में विश्लेषण के लिए उन्हें YAML फ़ाइल में सेव करें।
किसी भी ट्विटर यूजर की टाइमलाइन लाने के लिए आप user_timeline मेथड का उपयोग कर सकते हैं।
उदाहरण:
tweets = client.user_timeline('rubyinside', count: 20)
यह मेथड Tweet ऑब्जेक्ट्स का एक ऐरे रिटर्न करेगा जिनके साथ आप इंटरैक्ट कर सकते हैं, लेकिन आप ऐसा कैसे कर सकते हैं?
आप डॉक्यूमेंटेशन देख सकते हैं, लेकिन मुझे जो ज्यादा मजेदार लगता है वह है pry का उपयोग करना। यदि आप अपना कोड pry के अंदर चलाते हैं तो आप ls Twitter::Tweet कमांड का उपयोग कर पाएंगे। यह कमांड किसी विशिष्ट ऑब्जेक्ट या क्लास के लिए सभी मेथड्स को सूचीबद्ध करेगा।
इस मामले में:

तो अब आप देख सकते हैं कि एक full_text मेथड है जिसका हम उपयोग कर सकते हैं, आइए ऐसा करते हैं ताकि हम ट्वीट की सामग्री प्रिंट कर सकें।
tweets.each { |tweet| puts tweet.full_text }
आप मनोरंजन के लिए कुछ अन्य मेथड्स भी आज़मा सकते हैं 🙂
আপনার টুইটস সংরক্ষণ করা
इन सभी ट्वीट्स के साथ आप क्या करते हैं? उदाहरण के लिए, आप उन्हें बाद के विश्लेषण के लिए एक फ़ाइल में लिख सकते हैं। ऐसा करने का एक आसान तरीका YAML फॉर्मेट का उपयोग करना है।
require 'yaml' # ... rest of the code here ... File.write('tweets.yml', YAML.dump(tweets))
फिर आप YAML.load_file मेथड का उपयोग करके इन ट्वीट्स को लोड कर सकते हैं।
require 'yaml' require 'twitter' tweets = YAML.load_file('tweets.yml')
ट्वीट्स अपने मूल रूप में उपयोग के लिए तैयार होंगे, ठीक वैसे ही जैसे आपने उन्हें फिर से अनुरोध किया हो। क्या यह कूल नहीं है? 🙂
টুইট পাঠানো
आप और भी कई चीजें कर सकते हैं। उदाहरण के लिए, किसी विशिष्ट कीवर्ड का उल्लेख करने वाले यूजर्स को मैसेज भेजने के बारे में क्या ख्याल है?
एक नया ट्वीट भेजने के लिए आप update मेथड का उपयोग कर सकते हैं।
client.update("I'm having some fun with the Twitter gem!")
तो आप ऐसा कुछ कर सकते हैं:
client.search('#ruby').take(3).each do |tweet| client.update("@#{tweet.user} Hey I love Ruby too, what are your favorite blogs? :)") end
एक अन्य विकल्प स्ट्रीमिंग API का उपयोग करना है, जो आपको घटनाओं को घटित होते ही 'लाइव' देगा। इसके बारे में अधिक जानकारी आप डॉक्यूमेंटेशन में पा सकते हैं।
উপসংহার
प्रारंभिक सेटअप के बाद ट्विटर जेम ट्विटर API के साथ काम करना वास्तव में आसान बना देता है। अब आपकी बारी है इसे आजमाने की और कुछ मजेदार बनाने की!
इस पोस्ट को शेयर करना न भूलें ताकि मैं ऐसे और आर्टिकल लिखता रहूं 🙂