मुख्य सामग्री पर जाएं

परिचय

v2 में Search Posts endpoints आपको अपनी रुचि के विषयों से संबंधित पोस्ट्स प्राप्त करने की सुविधा देते हैं, जो आपकी बनाई गई खोज क्वेरी पर आधारित होती हैं। v2 Search Posts में दो अलग-अलग एंडपॉइंट्स उपलब्ध हैं: recent search, जो स्वीकृत खाते वाले सभी डेवलपर्स के लिए उपलब्ध है और सात दिन तक पुराने पोस्ट्स खोज सकता है, और full-archive search, जो केवल उन शोधकर्ताओं के लिए उपलब्ध है जिन्हें Academic Research product track के लिए स्वीकृति मिली है, और जो मार्च 2006 तक के पूरे पोस्ट संग्रह में खोज कर सकता है। आप हमारी पूरी खोज सुविधा का विवरण search overview page पर देख सकते हैं। ये Search Posts endpoints शैक्षणिक शोधकर्ताओं के सबसे सामान्य उपयोग मामलों में से एक को पूरा करते हैं, जो इसका उपयोग दीर्घकालिक अध्ययनों के लिए या किसी पुराने विषय या घटना के विश्लेषण के लिए कर सकते हैं। यह ट्यूटोरियल उन शोधकर्ताओं के लिए चरण-दर-चरण मार्गदर्शिका प्रदान करता है जो सार्वजनिक X डेटा के पूरे इतिहास में खोज करने के लिए full-archive search एंडपॉइंट का उपयोग करना चाहते हैं। यह यह भी दिखाएगा कि डेटासेट बनाने के अलग-अलग तरीके क्या हैं, जैसे जियो-टैग किए गए पोस्ट्स प्राप्त करना, और किसी क्वेरी के लिए उपलब्ध पोस्ट्स के पृष्ठों के बीच कैसे आगे बढ़ना है।

पूर्वापेक्षाएँ

फ़िलहाल, यह endpoint केवल Academic Research product track के हिस्से के रूप में उपलब्ध है। इस endpoint का उपयोग करने के लिए, आपको access के लिए आवेदन करना होगा. इसके बारे में अधिक जानें: इस track के लिए आवेदन प्रक्रिया और आवश्यकताओं.

किसी ऐप को Academic Project से कनेक्ट करें

जब आपको Academic Research product track का उपयोग करने की स्वीकृति मिल जाती है, तो आपको डेवलपर कंसोल में अपना Academic Project दिखाई देगा। “Apps” सेक्शन में जाकर, अपने X App को Project से कनेक्ट करने के लिए “Add App” पर क्लिक करें। यह छवि डेवलपर कंसोल में एक Academic Project दिखाती है, जिसमें अभी तक कोई App नहीं जोड़ा गया है इसके बाद, आप किसी मौजूदा App को चुनकर उसे अपने Project से कनेक्ट कर सकते हैं (जैसा कि नीचे दिखाया गया है)। यह छवि वह पेज दिखाती है जो आपके Academic Project में App जोड़ने का प्रयास करने पर पॉप अप होता है या आप एक नया App बना सकते हैं, उसे एक नाम दे सकते हैं और “Complete” पर क्लिक कर सकते हैं, ताकि नया App आपके Academic Project से कनेक्ट हो जाए। यह छवि वह पेज दिखाती है जहाँ आप अपने नए App के लिए नाम दर्ज करेंगे, या किसी मौजूदा App को चुन सकते हैं इसके बाद आपको अपनी API keys और बेयरर टोकन मिल जाएगा, जिनका उपयोग आप फिर full-archive search endpoint से कनेक्ट करने के लिए कर सकते हैं। यह छवि वह पेज दिखाती है जो नया App बनाने के बाद आपको दिखाई देता है, जिसमें आपकी keys और tokens प्रदर्शित होते हैं कृपया ध्यान दें ऊपर दिए गए स्क्रीनशॉट में keys छिपाई गई हैं, लेकिन अपने डेवलपर कंसोल में, आप API Key, API Secret Key, और बेयरर टोकन के वास्तविक मान देख पाएंगे। इन keys और बेयरर टोकन को सहेज लें, क्योंकि full-archive search endpoint को कॉल करने के लिए आपको इनकी आवश्यकता होगी।

full-archive search endpoint से कनेक्ट करना

नीचे दिया गया cURL कमांड दिखाता है कि आप @XDevelopers हैंडल से पुराने पोस्ट्स कैसे प्राप्त कर सकते हैं। $BEARER_TOKEN को अपने बेयरर टोकन से बदलें, पूरा अनुरोध अपने टर्मिनल में पेस्ट करें, और “return” दबाएँ।
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:xdevelopers' --header 'Authorization: Bearer $BEARER_TOKEN'
आपको response JSON दिखाई देगा। डिफ़ॉल्ट रूप से, केवल 10 सबसे हाल की पोस्ट्स लौटाई जाएंगी। यदि आप प्रति अनुरोध 10 से अधिक पोस्ट्स चाहते हैं, तो आप max_results पैरामीटर का उपयोग करके इसे प्रति अनुरोध अधिकतम 500 पोस्ट्स तक सेट कर सकते हैं, जैसा कि नीचे दिखाया गया है:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:xdevelopers&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'

क्वेरी बनाना जैसा कि आप ऊपर दिए गए उदाहरण कॉल में देख सकते हैं, query पैरामीटर का उपयोग करके आप यह निर्धारित कर सकते हैं कि आप किस डेटा को खोजना चाहते हैं। उदाहरण के लिए, यदि आप वे सभी पोस्ट्स प्राप्त करना चाहते हैं जिनमें covid या coronavirus शब्द शामिल हो, तो आप कोष्ठकों के भीतर OR ऑपरेटर का उपयोग कर सकते हैं, और आपकी क्वेरी (covid OR coronavirus) हो सकती है। इस प्रकार, आपका API कॉल निम्नलिखित जैसा दिखेगा:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=(covid%20OR%20coronavirus)&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'
इसी तरह, यदि आप ऐसे सभी पोस्ट्स चाहते हैं जिनमें covid19 शब्द हो और जो रीपोस्ट न हों, तो आप तार्किक NOT (जिसे - से दर्शाया जाता है) के साथ is:retweet ऑपरेटर का उपयोग कर सकते हैं। ऐसे में आपकी क्वेरी covid19 -is:retweet होगी और आपका API कॉल यह होगा:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=covid19%20-is:retweet&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'
देखें समर्थित ऑपरेटरों की पूरी सूची के लिए यह गाइड जो full-archive search endpoint में उपलब्ध हैं।

ऐतिहासिक पोस्ट्स प्राप्त करने के लिए start_time और end_time पैरामीटर का उपयोग करना

full-archive search endpoint का उपयोग करते समय, डिफ़ॉल्ट रूप से पिछले 30 दिनों की पोस्ट्स लौटाई जाती हैं। यदि आप 30 दिनों से पुरानी पोस्ट्स प्राप्त करना चाहते हैं, तो आप अपनी API कॉल में start_time और end_time पैरामीटर का उपयोग कर सकते हैं। ये पैरामीटर मान्य RFC3339 date-time format में होने चाहिए, उदाहरण के लिए 2020-12-21T13:00:00.00Z। इसलिए, यदि आप दिसंबर 2020 महीने के लिए XDevelopers अकाउंट से सभी पोस्ट्स प्राप्त करना चाहते हैं, तो आपकी API कॉल यह होगी:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:XDevelopers&start_time=2020-12-01T00:00:00.00Z&end_time=2021-01-01T00:00:00.00Z' --header 'Authorization: Bearer $BEARER_TOKEN'

जियो-टैग किए गए ऐतिहासिक पोस्ट्स प्राप्त करना जियो-टैग किए गए पोस्ट्स वे पोस्ट्स हैं जिनसे भौगोलिक जानकारी जुड़ी होती है, जैसे शहर, राज्य, देश आदि।

has:geo ऑपरेटर का उपयोग

यदि आप geo डेटा वाले पोस्ट्स प्राप्त करना चाहते हैं, तो आप has:geo ऑपरेटर का उपयोग कर सकते हैं। उदाहरण के लिए, नीचे दिया गया cURL अनुरोध @XDevelopers हैंडल से केवल वही पोस्ट्स प्राप्त करेगा जिनमें geo डेटा हो:
curl --request GET
'https://api.x.com/2/tweets/search/all?query=from:xdevelopers%20has:geo' --header
'Aubashthorization: Bearer $BEARER_TOKEN'

place_country ऑपरेटर का उपयोग

इसी तरह, आप geo डेटा वाले पोस्ट्स को place_country ऑपरेटर का उपयोग करके किसी खास देश तक सीमित कर सकते हैं। नीचे दिया गया cURL कमांड संयुक्त राज्य अमेरिका से @XDevelopers हैंडल के सभी पोस्ट्स प्राप्त करेगा:
curl --request GET
'https://api.x.com/2/tweets/search/all?query=from:xdevelopers%20place_country:US'
--hbasheader 'Authorization: Bearer XXXXX'
देश को ऊपर ISO alpha-2 कैरेक्टर कोड का उपयोग करके निर्दिष्ट किया गया है। मान्य ISO कोड यहाँ पाए जा सकते हैं।

next_token का उपयोग करके 500 से अधिक ऐतिहासिक पोस्ट्स प्राप्त करना

जैसा कि ऊपर बताया गया है, डिफ़ॉल्ट रूप से आप full-archive search endpoint पर किसी क्वेरी के लिए प्रति अनुरोध केवल 500 तक पोस्ट्स ही प्राप्त कर सकते हैं। यदि आपकी क्वेरी के लिए 500 से अधिक पोस्ट्स उपलब्ध हैं, तो आपके JSON response में एक next_token शामिल होगा, जिसे आप इस क्वेरी के लिए अगले उपलब्ध पोस्ट्स प्राप्त करने हेतु अपनी API call में जोड़ सकते हैं। यह next_token आपके JSON response के meta object में उपलब्ध होता है, जो कुछ इस प्रकार दिखता है:
{ "newest_id": "12345678...", "oldest_id": "12345678...", "result_count": 500,
"nebashxt_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
इसलिए, अगले उपलब्ध पोस्ट्स प्राप्त करने के लिए, इस meta ऑब्जेक्ट से next_token मान लें और नीचे दिखाए अनुसार इस मान को full-archive search endpoint के लिए अपने API कॉल में next_token के मान के रूप में उपयोग करें (आप अपना स्वयं का बेयरर टोकन और अपने पिछले API कॉल से प्राप्त Next Token मान का उपयोग करेंगे).
curl --request GET
'https://api.x.com/2/tweets/search/all?max_results=500&query=covid&next_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
--header 'Authorization: Bearer $BEARER_TOKEN'
इस तरह, आप यह जाँचते रह सकते हैं कि अगला next_token उपलब्ध है या नहीं, और अगर आप एकत्र किए जाने वाले पोस्ट्स की अपनी इच्छित संख्या तक अभी नहीं पहुँचे हैं, तो आप हर अनुरोध के लिए नए next_token के साथ full-archive endpoint को कॉल करते रह सकते हैं। नीचे कुछ संसाधन दिए गए हैं, जो full-archive search endpoint का उपयोग करते समय आपके काम आ सकते हैं। हम आपकी प्रतिक्रिया जानना चाहेंगे। हमसे @XDevelopers पर या हमारे community forums पर इस endpoint से जुड़े सवालों के साथ संपर्क करें।

अतिरिक्त संसाधन