2013-02-02 29 views
5

मैंने एक स्थानीय एकल पृष्ठ ऐप बनाया है (क्रोम ब्राउज़र के साथ स्थानीय रूप से खोले जाने के लिए एम्बेडेड जावास्क्रिप्ट वाला वेब पेज) और मुझे अपने ड्रॉपबॉक्स खाते से फ़ाइलों को अपलोड और डाउनलोड करने की क्षमता चाहिए। मैं जावास्क्रिप्ट का उपयोग करके ऐसा करने के लिए एक समाधान खोज रहा हूं, हालांकि, मैं एक मृत अंत में आया हूं। एक जावास्क्रिप्ट ड्रॉपबॉक्स एपीआई (ड्रॉपबॉक्स.जेएस) है, लेकिन ऐसा लगता है कि आपको इसे किसी वेब सर्वर (ड्रॉपबॉक्स प्रमाणीकरण पुनर्निर्देशन के लिए) से उपयोग करने की आवश्यकता है, जो मुझे नहीं लगता कि प्रमाणीकरण के बाद स्थानीय HTML फ़ाइल पर रीडायरेक्ट करने के लिए काम करेगा।एकल पृष्ठ ऐप के लिए जावास्क्रिप्ट का उपयोग करके ड्रॉपबॉक्स में फ़ाइलों को अपलोड करना?

क्या किसी ने ऐसा किया है जो मैं करने की कोशिश कर रहा हूं, या यह सिर्फ करने योग्य नहीं है? यदि ड्रॉपबॉक्स के साथ नहीं है, तो क्या कोई विकल्प है (उदा।, Google ड्राइव, आदि)?

धन्यवाद।

उत्तर

2

आप निश्चित रूप से Google ड्राइव के साथ काम कर सकते हैं: https://developers.google.com/drive/quickstart-js। एक नमूना प्लंकर भी चारों ओर तैर रहा है। मेरा मानना ​​है कि आप जेएस एपीआई के माध्यम से स्काईड्राइव के साथ भी काम कर सकते हैं।

ड्रॉपबॉक्स के बारे में 100% निश्चित नहीं है, लेकिन वे ओएथ 1 का उपयोग करते हैं (ड्रॉपबॉक्स प्रमाणीकरण OAuth v1 विनिर्देश @https://www.dropbox.com/developers/core/authentication#python) के अनुरूप है, और आम तौर पर इसे जेएस के साथ उपयोग करने का अच्छा विचार नहीं है, क्योंकि इसे आपके ऐप का पर्दाफाश करने की आवश्यकता है गुप्त। ट्विटर एक ही प्रयोग करता है, और उन्होंने अपने जेएस एपीआई को मार डाला।

0

आप लाइटवेट स्थानीय वेबसर्वर जैसे Bottle या यहां तक ​​कि Tornado का उपयोग करने का प्रयास कर सकते हैं। और फिर पुनर्निर्देशन यूआरएल http://127.0.0.1:5000/ का एक प्रकार होगा।

5

To authenticate उपयोग client.authDriver(new Dropbox.Drivers.Popup()) (see here) एक रीडायरेक्ट के बजाय:

यह ड्राइवर ब्राउज़र अनुप्रयोगों कि पुनर्निर्देशन Dropbox.Drivers.Redirect द्वारा peformed नहीं संभाल कर सकते हैं के लिए उपयोगी हो सकता है। यह ड्राइवर द्वारा एक अलग विंडो पॉप अप करने और उस विंडो में ड्रॉपबॉक्स प्राधिकरण पृष्ठ लोड करने से एप्लिकेशन की ब्राउज़र विंडो के स्थान को बदलने से बचाता है।

आपको read the file locally using a FileReader, फिर write your file पर सक्षम होना चाहिए।


अद्यतन: हाँ, आप करते हैं। Browser and Open-Source Applications देखें:

ड्रॉपबॉक्स एपीआई दिशा निर्देशों चाहते हैं कि एपीआई कुंजी और रहस्य क्लियर में उजागर नहीं है। यह उन अनुप्रयोगों के लिए एक मुद्दा है जो क्लाइंट साइड (ब्राउज़र ऐप्स और क्रोम एक्सटेंशन) पर ड्रॉपबॉक्स.जेएस का उपयोग करते हैं, के रूप में सभी खुले स्रोत अनुप्रयोगों के रूप में।

इस आवश्यकता को पूरा करने के लिए, encode your API key

+0

क्या मुझे अभी भी कोड में ओएथ ऐप रहस्य का पर्दाफाश करने की आवश्यकता है? (और क्या यह मामला खराब है या ठीक है?) – legoscia

+0

पर्याप्त मेला, अगर ड्रॉपबॉक्स स्वयं कहता है। लेकिन क्या यह एपीआई कुंजी और गुप्त डालने से कहीं ज्यादा सुरक्षित है? एन्कोडेड कुंजी सिर्फ "सादे टेक्स्ट समकक्ष" नहीं है? – legoscia

+0

चूंकि आप स्थानीय रूप से प्रमाणीकरण करना चाहते हैं, इसके आसपास कोई रास्ता नहीं है। यदि आप चिंतित हैं कि कोई आपकी कुंजी चुरा सकता है तो आपको सर्वर पर प्रमाणीकरण को संभालना होगा। दूसरी ओर, अगर उन्हें आपकी कुंजी मिलती है, तो वे इसके साथ क्या करेंगे? – laktak