2012-07-15 3 views
6

प्रश्न:DropNet DropBox लॉगिन, इसे कंसोल एप्लिकेशन में प्रोग्रामेटिक तरीके से कैसे करें?

मैं यहाँ से एक ड्रॉपबॉक्स कोई तिथि नहीं एपीआई का उपयोग कर रहा हूँ:
https://github.com/dkarzon/DropNet

ईकाई परीक्षण से, और केवल काम कर नमूना यहाँ से https://github.com/dkarzon/DropNet/blob/master/DropNet.Samples/DropNet.Samples.Web/Default.aspx.cs

मैं लगा कि यह की तरह काम करता यह:

DropNet.DropNetClient client = new DropNet.DropNetClient(strApiKey, strAppSecret); 

DropNet.Models.UserLogin login = client.GetToken(); 
client.UserLogin = login; 

var accountInfo = client.AccountInfo(); 
str = accountInfo.quota_info.quota.ToString(); 

प्रोबम है, यह accountinfo पर अपवाद फेंकता है। (System.Net.HttpStatusCode.Unuthorized) ठीक काम करने से पहले सब कुछ ठीक है, मुझे लॉगिन मिलता है (usertoken & उपयोगकर्ताक्रेट)।

मुझे लगता है कि मेरी समस्या नमूना आवेदन के इस भाग है:

var url = _client.BuildAuthorizeUrl(Request.Url.ToString() + "?dropboxcallback=1"); 
Response.Redirect(url); 

कहाँ यह एक लॉगिन के लिए ड्रॉपबॉक्स पर रीडायरेक्ट ... मैं एक वेब अनुप्रयोग की जरूरत नहीं है, इसलिए मैं कोई URL है। ..

मेरे पास एक कंसोल एप्लिकेशन है, जो हर शाम को स्वचालित रूप से एक सेवा के रूप में मेरे डेटाबेस का बैकअप लेना चाहिए, जिसके लिए यह निश्चित रूप से बहुत बुरा है वेबब्रोसर और उपयोगकर्ता को ईमेल/उपयोगकर्ता नाम टाइप करना होगा + पासवर्ड

हार्डकोड किए गए उपयोगकर्ता नाम और पासवर्ड की आपूर्ति करके मैं लॉगिन कैसे कर सकता हूं?

अगर मैं नमूना अनुप्रयोग का उपयोग, तो यह काम करता है, लेकिन यह है कि उपयोगकर्ता नाम और पासवर्ड वेब पर टाइप करने की आवश्यकता है, और यह कि एक सांत्वना आवेदन के लिए बड़ा समय बेकार है ...

+0

तुम एक सांत्वना आवेदन में एक UI नियंत्रण की मेजबानी के लिए प्रयास कर रहे हैं? – Paparazzi

+1

नहीं, मैं ड्रॉपबॉक्स को एक फ़ाइल कॉपी करने की कोशिश कर रहा हूं, पहले उपलब्ध स्थान की जांच कर रहा हूं (कंसोल एप्लिकेशन)। मैं निश्चित रूप से यूआई नियंत्रण नहीं चाहता, न ही एक यूआई। –

उत्तर

1

यह है मारा वेब आधारित यूआरएल का निर्माण और उपयोगकर्ता अनुमति देने के लिए अपने खाते को प्रमाणित करने की जरूरत है संभव है, SharpBox का उपयोग - परीक्षण, काम करता है।
किसी को एक्सेस-टोकन को मैन्युअल रूप से एक बार-क्रिया के रूप में प्राप्त करने की आवश्यकता होती है, उसके बाद, कोई लॉगिन पृष्ठ को छोड़ सकता है और सहेजे गए एक्सेस टोकन का उपयोग कर सकता है।

http://www.jayway.com/2012/02/06/unboxing-dropbox-and-sharpbox-2/

जादू लाइन है:

Globals.DropBox.Token = AppLimit.CloudComputing.SharpBox.StorageProvider.DropBox.DropBoxStorageProviderTools 
.ExchangeDropBoxRequestTokenIntoAccessToken(
     Globals.DropBox.config 
    , Globals.DropBox.AppKey, Globals.DropBox.AppSec 
    , Globals.DropBox.requestToken 
); 
6

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

तो सामान्य में वेबब्रॉवर के बिना इसे प्राप्त करना संभव नहीं है। अन्यथा आपको ड्रॉपबॉक्स की अनुमति प्रणाली के चारों ओर हैक करने के लिए वास्तव में गंदे हैक करना होगा।

कृपया Google पर "OAuth 2.0 प्रमाणीकरण प्रवाह" पर एक नज़र डालें।

The OAuth 2.0 flow

+0

यदि यह सच है ... तो एपीआई बहुत ही बेकार है ... –

+0

जैसा कि मैंने पहले ही उल्लेख किया है, आप परिणामस्वरूप HTML को स्वयं पार्स करने का प्रयास कर सकते हैं और उपयोगकर्ता को अनुक्रमित करने के लिए टेक्स्टबॉक्स नाम निकालने का प्रयास कर सकते हैं और उन्हें पास कर सकते हैं एपीआई। ध्यान दें कि आपको लॉगिन आईडी जैसे कुछ चीजों के आसपास हैक करना पड़ सकता है जिसका उपयोग एंटी [एक्सएसआरएफ] (http://de.wikipedia.org/wiki/Cross-Site_Request_Forgery) के लिए किया जाता है;) – GameScripting

+0

मैं बहुत खराब हूं ... उबंटूओने की कोशिश की - यह एपीआई है (अगर इसे कहा जा सकता है) भी बदतर है। अब Google ड्राइव मेरी आखिरी उम्मीद है। यह oAuth का भी उपयोग करता है, इसलिए - शायद मैं अभी भी soooo crewed हूँ। हो सकता है कि यह मेरा खुद का क्लाउड स्टोरेज प्रदाता लिखने का समय हो, मुझे बाजार के अंतर का एहसास है - कई क्लाउड स्टोरेज प्रदाता हैं, लेकिन कोई भी उपयोगी एपीआई नहीं है ... –

1

रूप GameScripting समझाया ड्रॉपबॉक्स एपीआई OAuth जो पहुंच टोकन को प्रमाणित करने के लिए ड्रॉपबॉक्स वेबसाइट के माध्यम से उपयोगकर्ता प्रवेश करना पड़ता है का उपयोग करता है: यहाँ एक चित्र मैं Yahoo जो के दिखाने यह कैसे काम करता पर पाया है।

3 चरण प्रक्रिया के लिए यहां दस्तावेज़ों को चेकआउट करें: http://dkdevelopment.net/what-im-doing/dropnet/

आप किस प्रकार का आवेदन बना रहे हैं? सामान्य प्रक्रिया एप्लिकेशन के अंदर ब्राउज़र नियंत्रण लोड करना और इसके साथ लॉगिन यूआरएल पर नेविगेट करना है। https://github.com/dkarzon/DropNet/blob/master/DropNet.Samples/DropNet.Samples.WP7/MainPage.xaml.cs

+0

-> आप किस प्रकार का आवेदन बना रहे हैं? -> कंसोल एप्लिकेशन, मैंने कहा कि प्रश्न में, लिखने से पहले इसे पढ़ें, कृपया ... कभी भी एक वेब ब्राउजर को कंसोल एप्लिकेशन में देखा (लिंक्स गिनती नहीं है, मैं सी # के लिए एक कंसोल ब्राउज़र नहीं लिखना चाहता हूं)। –

+0

क्या कंसोल ऐप केवल एक ड्रॉपबॉक्स खाते के साथ आंतरिक रूप से उपयोग किया जा रहा है?यदि ऐसा है तो मैं शायद आपको सुझाव देता हूं कि आप एक सरल पृष्ठ का उपयोग करके टोकन मैन्युअल रूप से प्राप्त करें जैसे उदाहरण के बाद उपयोगकर्ता नाम और पासवर्ड के बजाय एप्लिकेशन में टोकन "हार्डकोड" करें। – dkarzon

+0

हां, जानकारी की लापता बिट यह है कि आपको अनुरोध टोकन को एक्सेस टोकन में बदलने की आवश्यकता है। सभी के बाद समझ में आता है - सार्वजनिक/निजी कुंजी पासवर्ड एन्क्रिप्ट करता है, इसलिए कोई भी इसे रिवर्स-इंजीनियर नहीं कर सकता है। –

1

इसके बजाय उपयोगकर्ता नाम और पासवर्ड हार्डकोड की, आप OAuth पहुंच टोकन को हार्डकोड कर सकते हैं:

इसके अलावा, आप कैसे इस प्रक्रिया काम करता है की एक विचार देने के लिए नमूना विंडोज फोन एप्लिकेशन पर एक नजर है।

सबसे पहले, एक साधारण प्रोग्राम (उसी ऐप कुंजी का उपयोग करके) बनाएं जो मानक ब्राउज़र-आधारित प्राधिकरण प्रवाह का पालन करता है। फिर वांछित उपयोगकर्ता के साथ ऐप को अधिकृत करने के लिए इसका इस्तेमाल करें। यह आपको उस उपयोगकर्ता और आपकी ऐप कुंजी से जुड़े ओएथ एक्सेस टोकन (एक "टोकन" और "टोकन गुप्त") देगा।

फिर, अपने सेवा-शैली अनुप्रयोग में, ओएथ एक्सेस टोकन को हार्डकोड करें (DropNetClient के 4-तर्क कन्स्ट्रक्टर का उपयोग करके)।

2

DropnetClient के 4 तर्क निर्माता uisng के लिए भी हम इस है compusory बात, accesstoken उत्पन्न होगा उपयोगकर्ता के बाद की अनुमति देने के प्रमाणीकरण प्रक्रिया में बटन

संबंधित मुद्दे