इस एंडपॉइंट को पोस्ट संपादन मेटाडेटा शामिल करने के लिए अपडेट किया गया है। इस मेटाडेटा के बारे में अधिक जानने के लिए “Edit Posts” fundamentals page देखें।
- Expanded और enhanced URLs: - छोटे किए गए URLs को पूरी तरह विस्तृत करता है और अतिरिक्त metadata (पेज title और description) प्रदान करता है
- स्ट्रीम partitioning - 2 partitions, जिनमें से प्रत्येक में Decahose स्ट्रीम के वॉल्यूम का 50% शामिल होता है
- बेहतर विश्वसनीयता - backend systems की भौगोलिक विविधता
ENTERPRISE
यह एक enterprise API है, जो केवल हमारे managed access levels में उपलब्ध है। इस API का उपयोग करने के लिए, आपको पहले हमारी enterprise sales team के साथ एक खाता सेट अप करना होगा। और जानें
लाइक से यह समझने में मदद मिलती है कि पोस्ट्स को कौन लाइक करता है, और यह लाइक की सटीक संख्या भी उपलब्ध कराते हैं। Gnip का Firehose और Decahose, Gnip के माध्यम से डिलीवर की गई पोस्ट्स से संबंधित सार्वजनिक लाइक डिलीवर कर सकते हैं। इससे किसी पोस्ट से जुड़े रीयल-टाइम सार्वजनिक एंगेजमेंट और ऑडियंस मेट्रिक्स मिलते हैं।
लाइक के साथ शुरुआत करना
लाइक डेटा का उपयोग करने की तैयारी करते समय, आपको यह जानना चाहिए कि:
- लाइक एक स्वतंत्र, अलग स्ट्रीम के माध्यम से डिलीवर किए जाते हैं
- ऐतिहासिक रूप से लाइक को “Favorites” कहा जाता था। enriched native format payload में यही नामकरण बना रहता है
- स्ट्रीम्स में केवल सार्वजनिक लाइक शामिल होते हैं
- सार्वजनिक का मतलब है कि लाइक करने वाला उपयोगकर्ता, पोस्ट बनाने वाला उपयोगकर्ता, और पोस्ट — तीनों ही प्लेटफ़ॉर्म पर सार्वजनिक हों
- लाइक, Retweets से काफ़ी मिलते-जुलते हैं और एंगेजमेंट का एक सार्वजनिक संकेत होते हैं
- Payload तत्वों में शामिल हैं:
- मूल पोस्ट ऑब्जेक्ट
- मूल पोस्ट बनाने वाला Actor ऑब्जेक्ट
- like कार्रवाई करने वाला Actor ऑब्जेक्ट
- केवल मूल सामग्री को ही लाइक किया जा सकता है
- Retweets को लाइक नहीं किया जा सकता। किसी Retweet पर किया गया like मूल पोस्ट पर लागू होता है
- Quoted Tweets को लाइक किया जा सकता है
- Like activities में लागू Gnip Enrichments शामिल होते हैं (जहां खरीदे/लागू किए गए हों)
- समर्थित Products / Features
- लाइक streams, बैकफ़िल को सपोर्ट करती हैं (जहां खरीदा/लागू किया गया हो)
- लाइक streams के लिए Replay सपोर्ट नहीं है
- लाइक के लिए Search या Historical सपोर्ट नहीं है
- PowerTrack में लाइक सपोर्ट जोड़ने की कोई तत्काल योजना नहीं है
- Decahose में डिलीवर किए गए 10% sample Posts के लिए, स्ट्रीम में लागू सार्वजनिक लाइक का 100% शामिल होता है
- Partitions: 2
- URL संरचना
- कई परिवेशों के समर्थन के लिए, हम आपके खाते के लिए अतिरिक्त स्ट्रीम्स तैनात कर सकते हैं। ये स्ट्रीम्स एक-दूसरे से स्वतंत्र होती हैं और इनमें अंतर स्पष्ट करने के लिए इनका stream_label अलग होता है।
- कनेक्शन बनाए रखने में सहायता के लिए, प्रत्येक Decahose स्ट्रीम रिडंडेंट कनेक्शंस का समर्थन करती है। सबसे सामान्य आर्किटेक्चर में एक स्ट्रीम के दो कनेक्शन होते हैं, और client-side पर दो स्वतंत्र consumers होते हैं – आदर्श रूप से अलग-अलग नेटवर्क्स पर। इस डिज़ाइन में client-side नेटवर्क्स, servers और datastore pathways के बीच रिडंडेंसी हो सकती है। ध्यान दें कि प्रत्येक कनेक्शन पर डेटा की पूरी कॉपी दी जाती है, इसलिए client-side को डुप्लिकेट डेटा को संभालने और प्रबंधित करने में सक्षम होना चाहिए।
- हर 10 सेकंड में एक ‘heartbeat’ प्रदान किया जाएगा; हालांकि, Decahose स्ट्रीम में डेटा की मात्रा इतनी अधिक होती है कि पोस्ट्स का थोड़ी-सी अवधि (उदाहरण के लिए, कुछ सेकंड) तक भी न आना कनेक्शन समस्या का संकेत हो सकता है। इसलिए, डिस्कनेक्ट का पता लगाने के लिए ‘data silence’ और heartbeat का न मिलना, दोनों का उपयोग किया जा सकता है।
backfillMinutes=N पैरामीटर जोड़ना होगा, जहाँ N उन मिनटों की संख्या है (1-5, केवल पूर्णांक) जिनके लिए कनेक्शन स्थापित होने पर बैकफिल किया जाएगा। उदाहरण के लिए, यदि आपका कनेक्शन 90 सेकंड के लिए टूट जाता है, तो आपको अपने कनेक्शन अनुरोध में backfillMinutes=2 जोड़ना चाहिए। चूँकि यह अनुरोध 2 मिनट का बैकफिल देगा, जिसमें आपके डिस्कनेक्ट होने से पहले के 30 सेकंड भी शामिल हैं, इसलिए आपका consumer ऐप डुप्लिकेट डेटा को संभालने में सक्षम होना चाहिए।
partition 1 के लिए 5 मिनट का बैकफिल माँगने वाला एक उदाहरण Decahose कनेक्शन अनुरोध URL इस प्रकार है:
https://gnip-stream.x.com/stream/sample10/accounts/:account_name/publishers/twitter/:stream_label.json?partition=1&backfillMinutes=5
नोट्स:
-
आपके पास यह विकल्प भी है कि कनेक्ट करते समय हमेशा
backfillMinutes=5का उपयोग करें, और फिर प्राप्त होने वाले किसी भी डुप्लिकेट डेटा को संभालें। - यदि आपका कनेक्शन पाँच मिनट से अधिक समय के लिए टूट जाता है, तो आप Recovery का उपयोग करके डेटा पुनर्प्राप्त कर सकते हैं।
- डिस्कनेक्ट अवधि की लंबाई निर्धारित करना।
- 5 मिनट या उससे कम?
- यदि आपके स्ट्रीम के लिए Backfill सक्षम है, तो उपयुक्त
backfillMinutesपैरामीटर के साथ कनेक्शन अनुरोध तैयार करें।
- यदि आपके स्ट्रीम के लिए Backfill सक्षम है, तो उपयुक्त
- 5 मिनट से अधिक?
- यदि आपके पास Recovery स्ट्रीम है, तो डिस्कनेक्ट अवधि के लिए Recovery अनुरोध करें (आदर्श रूप से अपने मौजूदा realtime rule set के साथ, और आवश्यकता होने पर Rules API का उपयोग करते हुए)।
- 5 मिनट या उससे कम?
- नए कनेक्शन का अनुरोध करें।
- बैकफिल लागू करें बैकफिल आपको स्ट्रीम कनेक्शन से डिस्कनेक्ट होने से पहले के किसी बिंदु से फिर से कनेक्ट करने देता है, और 5 मिनट तक के डिस्कनेक्ट को कवर करता है। इसे कनेक्शन अनुरोध में एक पैरामीटर शामिल करके लागू किया जाता है।
- किसी अन्य स्थान से रिडंडेंट स्ट्रीम कंज्यूम करें यदि रिडंडेंट स्ट्रीम को उसी live environment में स्ट्रीम किया जा सकता है और डेटा को डुप्लिकेट-मुक्त किया जा सकता है, तो आपको recovery की आवश्यकता नहीं होगी, जब तक कि सामान्य स्ट्रीम और रिडंडेंट स्ट्रीम दोनों में एक साथ डाउनटाइम या डिस्कनेक्ट न हो। यदि रिडंडेंट स्ट्रीम को production environment में live स्ट्रीम नहीं किया जा सकता, तो इसे एक अलग “emergency” data store में लिखा जा सकता है। फिर, primary स्ट्रीम कनेक्शन पर डिस्कनेक्ट या डाउनटाइम होने की स्थिति में, आपके सिस्टम के पास उस अवधि का डेटा उपलब्ध रहेगा जिसमें डेटा गायब है, ताकि आपके primary database की कमी पूरी की जा सके
- Recovery लागू करें जहाँ डिस्कनेक्ट या डाउनटाइम primary स्ट्रीम और रिडंडेंट स्ट्रीम दोनों को प्रभावित करते हैं, वहाँ छूटे हुए डेटा को पुनर्प्राप्त करने के लिए Decahose Recovery का उपयोग करें। API archive के 5 दिनों को कवर करने वाली एक rolling window प्रदान करता है, और इसका सर्वोत्तम उपयोग यही है कि एक बार में उस window के एक घंटे से अधिक का अनुरोध न किया जाए और उसे स्ट्रीम किया जाए। यह realtime स्ट्रीम के समानांतर किया जाता है। ध्यान दें कि Recovery द्वारा प्रदान की गई 5-दिन की window से आगे के Decahose डेटा को पुनर्प्राप्त करने के लिए हमारे पास कोई समाधान नहीं है, इसलिए यह महत्वपूर्ण है कि आप रिडंडेंट स्ट्रीम का उपयोग करें, ताकि आपकी ओर से गंभीर डाउनटाइम की स्थिति में आपके पास डेटा की पूर्ण प्रति मौजूद रहे।
- आने वाले पोस्ट्स की गणना करें आपके सिस्टम को अपने ingestion ऐप की शुरुआत में ही प्राप्त होने वाले पोस्ट्स की कुल संख्या गिननी चाहिए, और फिर उन संख्याओं की तुलना आपके अंतिम data store तक पहुँचने वाले पोस्ट्स की संख्या से करने का कोई तरीका होना चाहिए। किसी भी अंतर की निगरानी की जा सकती है, और आपकी टीम को उन समस्याओं के बारे में सतर्क किया जा सकता है जिनकी वजह से डेटा प्राप्त होने के बाद छूट रहा है।
- संग्रहीत मात्रा में असामान्य गिरावट का विश्लेषण करें आप अपने अंतिम database में संग्रहीत डेटा की मात्रा का विश्लेषण भी करना चाह सकते हैं, ताकि असामान्य गिरावटों की पहचान की जा सके। यह भी समस्याओं का संकेत हो सकता है, हालाँकि ऐसी परिस्थितियाँ भी हो सकती हैं जिनमें मात्रा में गिरावट सामान्य हो (उदाहरण के लिए, यदि X प्लेटफ़ॉर्म उपलब्ध न हो और लोग कुछ समय तक पोस्ट्स न बना सकें)।
Volume Stream APIs के लिए सभी अनुरोधों में HTTP Basic Authentication का उपयोग करना आवश्यक है, जिसे console.gnip.com पर अपने खाते में लॉग इन करने के लिए इस्तेमाल किए जाने वाले वैध ईमेल पते और पासवर्ड के संयोजन से बनाया जाता है। प्रत्येक अनुरोध में क्रेडेंशियल्स को Authorization header के रूप में भेजना आवश्यक है। इसलिए सुनिश्चित करें कि आपका क्लाइंट सभी API अनुरोधों में “Authentication: Basic” HTTP header (HTTPS पर एन्कोड किए गए क्रेडेंशियल्स के साथ) जोड़ रहा हो।
GET :stream
Firehose stream के लिए एक स्थायी कनेक्शन स्थापित करता है, जिसके माध्यम से रीयल-टाइम डेटा वितरित किया जाता है।
इन अनुरोधों के लिए API निम्नलिखित रिस्पॉन्स लौटा सकता है। अधिकांश त्रुटि कोड, बॉडी में अतिरिक्त विवरण वाली एक स्ट्रिंग के साथ लौटते हैं। non-200 रिस्पॉन्स के लिए, क्लाइंट्स को दोबारा कनेक्ट करने का प्रयास करना चाहिए।
निम्नलिखित उदाहरण अनुरोध को कमांड लाइन पर cURL का उपयोग करके पूरा किया गया है। हालांकि, ध्यान दें कि ये अनुरोध आपकी पसंद की प्रोग्रामिंग भाषा से भी भेजे जा सकते हैं: