हाल की खोज का पेजिनेशन
परिचय
- recent search endpoints किसी क्वेरी के लिए कम-से-कम एक पेज के साथ रिस्पॉन्स देंगे, और यदि अतिरिक्त पेज उपलब्ध हों, तो अपने JSON रिस्पॉन्स में next_token प्रदान करेंगे। मेल खाने वाले पोस्ट्स पाने के लिए, इस प्रक्रिया को तब तक दोहराया जा सकता है जब तक रिस्पॉन्स में कोई token शामिल न हो।
- next_token की समय-सीमा समाप्त नहीं होती। एक ही next_token value का उपयोग करने वाले कई अनुरोध, अनुरोध कब किया गया है इसकी परवाह किए बिना, समान परिणाम प्राप्त करेंगे।
-
पोस्ट्स UTC समय-क्षेत्र में reverse-chronological क्रम में दिए जाते हैं। यह individual पेजों के भीतर भी लागू होता है, और कई पेजों में भी:
- पहले रिस्पॉन्स का पहला पोस्ट आपकी क्वेरी से मेल खाने वाला सबसे हाल का पोस्ट होगा।
- आखिरी रिस्पॉन्स का आखिरी पोस्ट आपकी क्वेरी से मेल खाने वाला सबसे पुराना पोस्ट होगा।
- max_results request parameter आपको प्रति रिस्पॉन्स लौटाए जाने वाले पोस्ट्स की संख्या कॉन्फ़िगर करने देता है। इसका डिफ़ॉल्ट 10 पोस्ट्स है और अधिकतम 100 है।
- हर पेजिनेशन implementation में रिस्पॉन्स payload से next_tokens को parse करना और उन्हें ‘next पेज’ search request में शामिल करना होता है। इन ‘next पेज’ requests को कैसे तैयार करें, इसके बारे में अधिक जानकारी के लिए नीचे देखें।
- ऐतिहासिक डेटा प्राप्त करना - रुचि की किसी समयावधि से मेल खाने वाले पोस्ट्स का अनुरोध करना। ये आमतौर पर ऐतिहासिक शोध के लिए किए जाने वाले एकबारगी अनुरोध होते हैं। Search requests, start_time और end_time request parameters पर आधारित हो सकते हैं। recent search endpoint सबसे हाल के मेल खाने वाले पोस्ट से शुरू करते हुए, reverse-chronological क्रम में पोस्ट्स के साथ रिस्पॉन्ड करता है।
- पोलिंग - पिछले प्राप्त पोस्ट के बाद किए गए मेल खाने वाले पोस्ट्स का अनुरोध करना। इन उपयोग मामलों का फोकस अक्सर near-real-time होता है और इनकी विशेषता बार-बार अनुरोध करना है, ताकि रुचि के नए पोस्ट्स के लिए “listening” किया जा सके। recent search endpoint ‘पोलिंग’ pattern के समर्थन में since_id request parameter प्रदान करता है। Post IDs के आधार पर नेविगेट करने में मदद के लिए, until_id request parameter भी उपलब्ध है।
ऐतिहासिक डेटा पुनर्प्राप्त करना
start_time और end_time अनुरोध पैरामीटर का उपयोग करके अपनी रुचि की अवधि के पोस्ट्स कैसे पुनर्प्राप्त कर सकते हैं (फ़िलहाल यह पिछले सात दिनों तक सीमित है)। ऐतिहासिक अनुरोध आमतौर पर शोध और विश्लेषण के लिए एकबारगी अनुरोध होते हैं।
किसी समयावधि के डेटा के लिए अनुरोध करना recent search endpoint का डिफ़ॉल्ट मोड है। अगर कोई search request start_time, end_time, या since_id अनुरोध पैरामीटर निर्दिष्ट नहीं करता है, तो end_time का डिफ़ॉल्ट मान “now” होगा (असल में क्वेरी के समय से 30 सेकंड पहले) और start_time का डिफ़ॉल्ट मान सात दिन पहले होगा।
endpoint सबसे हालिया पोस्ट से शुरू करते हुए, पोस्ट्स का पहला ‘पेज’ उल्टे कालानुक्रमिक क्रम में लौटाएगा। रिस्पॉन्स JSON payload में next_token भी शामिल होगा, अगर डेटा के अतिरिक्त पेज उपलब्ध हों। मेल खाने वाले पोस्ट्स का पूरा सेट एकत्र करने के लिए, पेजों की संख्या चाहे जितनी भी हो, तब तक अनुरोध किए जाते हैं जब तक next_token दिया जाना बंद न हो जाए।
उदाहरण के लिए, पिछले सप्ताह के snow कीवर्ड वाले पोस्ट्स के लिए एक प्रारंभिक अनुरोध यहां है:
https://api.x.com/2/tweets/search/recent?query=snow
रिस्पॉन्स में सबसे हाल के 10 पोस्ट्स शामिल हैं, साथ ही JSON रिस्पॉन्स में ये “meta” attributes भी शामिल होते हैं:
पोलिंग और लिसनिंग उपयोग परिदृश्य
https://api.x.com/2/tweets/search/recent?query=snow&since_id=12000
जब अधिक डेटा उपलब्ध होता है और next tokens दिए जाते हैं, तो केवल परिणामों के पहले पेज का newest_id मान ही आवश्यक होता है। डेटा के हर पेज में newest_id और oldest_id मान शामिल होंगे, लेकिन अगले नियमित पोलिंग request के लिए सिर्फ पहले पेज में दिया गया मान ही चाहिए। इसलिए, यदि आप पोलिंग design लागू कर रहे हैं या ID range के आधार पर पोस्ट्स खोज रहे हैं, तो पेजिनेशन logic थोड़ा अधिक जटिल हो जाता है।
अब मान लें कि 18 और मेल खाने वाले पोस्ट्स हैं। endpoint इस शुरुआती रिस्पॉन्स के साथ उत्तर देगा, जिसमें एक पूरा data पेज और इस पाँच मिनट की अवधि से डेटा के अगले पेज का अनुरोध करने के लिए एक next_token होगा। इसमें पाँच मिनट बाद होने वाले अगले पोलिंग interval के लिए आवश्यक newest Post ID भी शामिल होगी.