हाल ही में, हमने चर्चा की कि डेवलपर्स फ़ोटोशॉप एपीआई का उपयोग कैसे कर सकते हैं। उस पोस्ट में, हमने एक सरल Node.js स्क्रिप्ट साझा की थी जो Azure में संग्रहीत फ़ाइल का उपयोग करके किसी एक API को कॉल करेगी।
यह सरल था - एक एक्सेस टोकन प्राप्त करें, एक इनपुट दस्तावेज़ के साथ एपीआई कार्य शुरू करें, पूरा करने के लिए मतदान करें, और फिर परिणाम की जांच करें।
हालाँकि सरल अच्छा है क्योंकि इसका मतलब है कि इसे कस्टम वर्कफ़्लो में एकीकृत करना आसान है। आज की पोस्ट में हम बस यही करेंगे।
आइए यह परिभाषित करके शुरुआत करें कि हमारा वर्कफ़्लो क्या करने जा रहा है। कल्पना कीजिए कि हम फ़ोटो संग्रहीत करने के लिए क्लाउड स्टोरेज प्रदाता, इस मामले में, ड्रॉपबॉक्स का उपयोग कर रहे हैं। हमारा वर्कफ़्लो इस फ़ोल्डर की निगरानी करेगा और नए चित्र जोड़े जाने पर ट्रिगर करेगा।
जब चित्र जोड़ा जाता है, तो हम फ़ाइल को पकड़ लेंगे और इसे एक एंडपॉइंट पर भेज देंगे जो लाइटरूम "ऑटोटोन" सुविधा चलाता है। यह सुविधा फ़ोटो में एक्सपोज़र, कंट्रास्ट और अन्य समस्याओं को ठीक करने का प्रयास करती है।
एक उदाहरण के रूप में (जो हमने दस्तावेज़ों से चुराया है), यहां सुधारों के पहले और बाद के प्रभाव को दिखाया गया है:
एक बार एपीआई हो जाने के बाद, हम परिणाम को ड्रॉपबॉक्स में किसी अन्य फ़ोल्डर में संग्रहीत करेंगे। हम मूल को अधिलेखित कर सकते हैं, लेकिन सबसे अधिक संभावना है, लोग दोनों प्रतियां चाहेंगे ताकि वे अंतिम जांच कर सकें कि उन्हें कौन सी पसंद है।
अपने वर्कफ़्लो के लिए, हम Pipedream का उपयोग करेंगे। सामान्य वर्कफ़्लोज़ के निर्माण के लिए पाइपड्रीम एक कम-कोड/नो-कोड समाधान है। यह Microsoft PowerAutomate और Workfront Fusion के समान स्थान पर है। (और आप जल्द ही उन प्लेटफार्मों पर भी हमसे उदाहरण देखने की उम्मीद कर सकते हैं।)
पाइपड्रीम वास्तव में प्रोजेक्ट के अधिक कठिन, या यहां तक कि उबाऊ पहलुओं को "प्लग एंड प्ले" बनाकर डेवलपर्स की मदद करता है। उदाहरण के तौर पर, यह परिभाषित करते समय कि वर्कफ़्लो, ट्रिगर क्या शुरू होता है, पाइपड्रीम पूर्व-निर्मित कोड ब्लॉक के एक विशाल सेट के साथ आता है।
जब हम यह प्रदर्शित करना शुरू करेंगे कि हमने अपना वर्कफ़्लो कैसे बनाया है, तो आप उसे क्रियान्वित होते हुए देखेंगे। पाइपड्रीम में एक निःशुल्क स्तर है, इसलिए आपमें से जो लोग पढ़ना चाहते हैं वे साइन अप करने के बाद ऐसा कर सकते हैं।
यदि आपने पहले कभी पाइपड्रीम का उपयोग नहीं किया है, तो यह कैसे काम करता है इसके परिचय के लिए उनके उत्कृष्ट पाइपड्रीम विश्वविद्यालय को देखें। उनके पास बेहतरीन दस्तावेज़ भी हैं. अंततः, आपके मित्रवत लेखक ने यहां पाइपड्रीम के बारे में भी लिखा है।
इसे रास्ते से हटाकर, आइए निर्माण शुरू करें!
पाइपड्रीम वर्कफ़्लो एक ट्रिगर से शुरू होता है जो "घटना" का प्रतिनिधित्व करता है जिसे हमारी प्रक्रिया को शुरू करना चाहिए। पाइपड्रीम में बहुत सारे ट्रिगर अंतर्निहित हैं (और आप अपना खुद का लिख सकते हैं), और सौभाग्य से, ड्रॉपबॉक्स ट्रिगर में एक "नई फ़ाइल" समर्थित है:
"नई फ़ाइल" ट्रिगर का चयन करने के बाद, आपको इसे कॉन्फ़िगर करने के लिए एक सरल इंटरफ़ेस दिया गया है:
शीर्ष पर प्रमाणीकरण पहलू है. यहां, आप Pipedream को अपने ड्रॉपबॉक्स खाते से जोड़ सकते हैं। सबसे अच्छी बात यह है कि एक बार ऐसा करने के बाद, आप उस कनेक्शन को एकाधिक वर्कफ़्लोज़ में पुन: उपयोग कर सकते हैं।
इसके बाद, पथ मान को नोट कर लें। आप यहां टाइप कर सकते हैं, और Pipedream आपके खाते के आधार पर स्वत: पूर्ण करने का प्रयास करेगा, या बस एक पथ दर्ज करेगा। हम /PSAPI_Input
उस फ़ोल्डर के रूप में उपयोग करने जा रहे हैं जो छवियां प्राप्त करने की अपेक्षा करता है।
अगली दो सेटिंग्स को नजरअंदाज किया जा सकता है, लेकिन अंतिम सेटिंग, Include Link
, को सत्य पर टॉगल किया जाना चाहिए। हमें उस लिंक की आवश्यकता होगी ताकि हम एपीआई को बता सकें कि डेटा कैसे लाया जाए।
यहां हमारे वर्कफ़्लो के लिए अंतिम कॉन्फ़िगर किया गया ट्रिगर है:
संक्षेप में, इस बिंदु पर, हमने अपने ड्रॉपबॉक्स खाते में किसी विशेष फ़ोल्डर में फ़ाइल जोड़ते ही स्वचालित रूप से सक्रिय होने के लिए वर्कफ़्लो को कॉन्फ़िगर किया है।
जब फ़ोटोशॉप एपीआई चलता है, तो यह कम से कम दो चीजों की अपेक्षा करता है - एक इनपुट यूआरएल और एक आउटपुट यूआरएल। मूल रूप से, इसके इनपुट को कहां पढ़ा जाए और परिणाम को कहां संग्रहीत किया जाए।
हमारा इनपुट ड्रॉपबॉक्स में जोड़ी गई नई फ़ाइल होगी। हमारा आउटपुट लाइटरूम द्वारा सही की गई छवि का स्थान होगा।
इसका समर्थन करने के लिए, हमें ड्रॉपबॉक्स से एक विशेष यूआरएल उत्पन्न करने के लिए कहना होगा जिसका उपयोग डेटा संग्रहीत करने के लिए किया जा सकता है। पाइपड्रीम में बहुत सारे ड्रॉपबॉक्स एक्शन अंतर्निहित हैं लेकिन दुर्भाग्यवश, इसमें यह विशेष एक्शन नहीं है।
सौभाग्य से, Pipedream आपको कस्टम कोड के साथ एक चरण बनाने की सुविधा देता है जहां यह पहले से ही आपके लिए प्रमाणीकरण को संभाल चुका है। याद रखें कि ट्रिगर में, हमने एक मौजूदा ड्रॉपबॉक्स खाता निर्दिष्ट किया है। क्योंकि हमने ऐसा किया है, फिर हम कोड लिख सकते हैं और पाइपड्रीम को प्रमाणीकरण संभालने दे सकते हैं।
ड्रॉपबॉक्स एपीआई से परामर्श करके, हम get_temporary_upload_link एंडपॉइंट ढूंढते हैं जो बिल्कुल वही है जो हमें चाहिए।
Pipedream में, हम एक नया चरण जोड़ते हैं और "Node.js में किसी भी ड्रॉपबॉक्स एपीआई का उपयोग करें" का चयन करते हैं। यह हमें एक नमूना समापन बिंदु तक पहुंचने वाला बॉयलरप्लेट कोड देता है:
सबसे महत्वपूर्ण बात - ध्यान दें कि प्रमाणीकरण जानकारी स्वचालित रूप से प्रदान की जाती है। फिर हमें बस समापन बिंदु को संपादित करना है और अपना इनपुट सेट करना है:
ध्यान दें कि हम एक पथ का उपयोग कर रहे हैं जो एक अलग फ़ोल्डर है, /PSAPI_Output
। उसके बाद का मान, ${steps.trigger.event.name}
, हमारे वर्कफ़्लो में पहले की जानकारी का उपयोग करके प्रदर्शित होता है, विशेष रूप से उस ईवेंट का फ़ाइल नाम जिसने हमारे वर्कफ़्लो को ट्रिगर किया, और फ़ाइल का नाम।
कोड एपीआई कॉल के परिणाम को लौटाकर समाप्त होता है, जो हमारे मामले में, एक विशेष यूआरएल होगा जिसे हम अपने एपीआई कॉल के साथ उपयोग कर सकते हैं।
हमारे पिछले ब्लॉग पोस्ट में, हमने चर्चा की कि फ़ोटोशॉप एपीआई के लिए क्रेडेंशियल कैसे प्राप्त करें और फिर एक्सेस टोकन प्राप्त करने के लिए कोड में उनका उपयोग कैसे करें। Pipedream में, हम कस्टम कोड चलाने के लिए अपने वर्कफ़्लो में एक चरण जोड़ सकते हैं।
आपने इसे पिछले चरण में देखा था जब हमने ड्रॉपबॉक्स एपीआई को हिट किया था। Pipedream Node.js और Python दोनों को सपोर्ट करता है इसलिए आपके पास वहां कुछ विकल्प हैं। हम एक नया कोड चरण जोड़ेंगे और इसे getAccessToken
नाम देंगे।
यह कदम JWT उत्पन्न करने और एक्सेस टोकन के लिए विनिमय करने के लिए हमारे क्रेडेंशियल्स का उपयोग करने के लिए जिम्मेदार होगा।
उस पिछले ब्लॉग पोस्ट में, प्रक्रिया को सरल बनाने के लिए कोड ने @adobe/jwt-auth पैकेज का उपयोग किया था। हालाँकि, यह पैकेज ES6 आयात के रूप में काम नहीं करता है जिसे Pipedream समर्थन करता है। सौभाग्य से, हम दूसरे एनपीएम पैकेज, jsonwebtoken पर स्वैप कर सकते हैं। आइए कोड पर एक नज़र डालें:
तो यहाँ कुछ बातें। सबसे पहले, प्रत्येक नोड पाइपड्रीम कोड चरण इस प्रकार एक फॉर्म का उपयोग करता है:
run
फ़ंक्शन को स्वचालित रूप से कॉल किया जाता है, और किसी भी पिछले चरण से डेटा पास किया जाता है, साथ ही अन्य ऑपरेशनों के लिए एक हैंडलर ( $
) की भी हमें आवश्यकता नहीं होगी। मूलतः, हम अपने आयात को शीर्ष पर और अपने तर्क को अंदर रखेंगे।
आप पर्यावरण से कॉपी किए जा रहे चर के एक सेट को देख सकते हैं - आश्चर्य की बात नहीं - पाइपड्रीम हमें कस्टम पर्यावरण चर को भी परिभाषित करने देता है।
कोड का अगला ब्लॉक हमारा JWT उत्पन्न करता है। यह अधिकतर बॉयलरप्लेट है, लेकिन jwtOptions
भाग पर विशेष ध्यान दें। यह वेरिएबल, "https://ims-na1.adobelogin.com/s/ent_ccas_sdk": true,
वही है जो हमारे टोकन के लिए दायरा निर्धारित करता है और एपीआई के साथ काम करने के लिए आवश्यक है।
जेडब्ल्यूटी बनने के बाद, इसे एक्सेस टोकन उत्पन्न करने के लिए एक सामान्य एडोब एंडपॉइंट पर भेजा जा सकता है। तर्क का अंतिम हिस्सा उस टोकन को वापस करना है। यदि आपको पिछले चरण में याद है, तो हम जो कुछ भी लौटाते हैं उसका बाद में उपयोग किया जा सकता है। आप जल्द ही इसे क्रियान्वित होते हुए देखेंगे।
अब, व्यवसाय में उतरने का समय आ गया है। हमारे ट्रिगर ने हमें नई छवि का लिंक दिया। अगले कोड चरण ने अंतिम परिणाम अपलोड करने के लिए हमारे लिए एक लिंक तैयार किया। फिर हमें एक एक्सेस टोकन मिला। हमारे पास प्रक्रिया शुरू करने के लिए आवश्यक सभी चीजें मौजूद हैं।
एक बार फिर, हम अपने वर्कफ़्लो में एक Node.js चरण जोड़ेंगे। यहाँ यह कार्रवाई में है.
ऑटोटोन एपीआई को कुछ मापदंडों की आवश्यकता होती है, इस मामले में, एक इनपुट और आउटपुट मान। हमारे मामले में, हम ट्रिगर से लिंक और पहले उत्पन्न विशेष अपलोड यूआरएल पास करते हैं।
और बस! इस कॉल का परिणाम उस कार्य का एक लिंक है जिसे हम अंत में लौटाते हैं।
ठीक है, बिल्कुल कुछ नहीं, लेकिन यहाँ एक दिलचस्प सवाल है। यह संपूर्ण कार्यप्रवाह बिना किसी मानवीय संपर्क के स्वचालित रूप से चलता है। पिछला चरण एक प्रक्रिया शुरू करता है, जो पूरा होने पर परिणाम को ड्रॉपबॉक्स में सहेज लेगा। क्या हमें कुछ और करने की ज़रूरत है? ज़रूरी नहीं।
यह बिल्कुल संभव है कि एपीआई किसी कारण से विफल हो जाए। संभव है कुछ और भी ग़लत हो जाए. यह भी संभव है कि हम किसी को बदलाव के बारे में सचेत करना चाहें, शायद ईमेल के ज़रिए। ईमानदारी से, यह आप पर निर्भर है।
हमारे नमूना वर्कफ़्लो में, हमने केवल कार्य की जाँच करने और उसके समाप्त होने की प्रतीक्षा करने का निर्णय लिया। यहां वह कोड चरण है, और यह हमारे पिछले ब्लॉग पोस्ट के समान ही है। हम कार्य की जाँच करते हैं, प्रतीक्षा करते हैं और पुनः जाँच करते हैं।
यहीं पर हम वर्कफ़्लो को समाप्त करते हैं, लेकिन हम कार्य के परिणाम की जांच करने और कुछ करने के लिए तर्क जोड़ सकते हैं और शायद हमें जोड़ना भी चाहिए। शायद अच्छे नतीजे पर हम कुछ नहीं करते, लेकिन गलती होने पर हम ईमेल भेज देते हैं। (और वैसे, पाइपड्रीम ईमेल भेजना बेहद आसान बना देता है।)
हालाँकि अच्छी बात यह है कि हम इस पर बाद में निर्णय ले सकते हैं।
Pipedream की एक बहुत अच्छी विशेषता यह है कि इससे यह जांचना आसान हो जाता है कि वर्कफ़्लो कब चला है। उदाहरण के लिए, यहां पिछले निष्पादनों की एक सूची दी गई है:
आप वहां जो त्रुटियां देख रहे हैं, वे एपीआई के साथ खेलने और यह कैसे काम करती हैं, इसका पता लगाने से आई हैं। आप उनमें से किसी पर भी क्लिक कर सकते हैं और उसमें प्रवाहित डेटा देख सकते हैं।
वर्कफ़्लो के साथ, हमने ड्रॉपबॉक्स फ़ोल्डर में एक नई छवि अपलोड की, एक खुले टैब में वर्कफ़्लो फायरिंग को देखा, और जब पूरा हो गया, तो परिणाम की जाँच की। यहाँ पहले है:
और यहाँ इसके बाद है:
परिणाम बेहतर है, और बिल्कुल सुधार है! आप यहां मेरे वर्कफ़्लो की अपनी प्रति बना सकते हैं: https://pipedream.com/new?h=tch_3xxfJA । यदि आप और अधिक जानना चाहते हैं, तो हमारे डॉक्स पर जाएँ, और जो आपने बनाया है उसे साझा करें!
यहाँ भी प्रकाशित किया गया