2016-01-20 8 views
7

तक पहुंच नहीं मिल सकता है, मैंने माइक्रोसॉफ्ट OneDrive API को कनेक्ट करने और फ़ाइलों और फ़ोल्डरों को सूचीबद्ध करने के लिए Perl में यह सरल कोड बनाया है। लेकिन अब मैं टोकन तक पहुंचने पर रोक लगा हूं।पर्ल में माइक्रोसॉफ्ट वनड्राइव एपीआई क्लाइंट को टोकन

मैंने Microsoft's documentation को खोजने के लिए पढ़ा, लेकिन मुझे कुछ भी नहीं मिला।

#!/usr/bin/perl -w 
use strict; 
use LWP; use LWP::UserAgent; 

my $client_id = '...'; 
my $client_secret = '...'; 
my $client_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36'; # whatever 
my $ua = new LWP::UserAgent; 
$ua->->show_progress(1); # Microsoft use url redirection and I want to see the steps 
$ua->agent($client_agent); 
$ua->timeout(30); 
my $URL = 'https://login.live.com/oauth20_desktop.srf'; # from documentation 
my @params = (
    "client_id=".$client_id, 
    "scope=onedrive.readonly", 
    "response_type=token", 
    "redirect_uri=https://login.live.com/oauth20_desktop.srf" 
); 
my $URLFULL = $URL."?".join("&", @params); 
my $res = $ua->get($URLFULL); 
if ($res->is_success) { 
    print $res->request->uri->as_string."\n"; # it should be the url with a valid token 
    my $block = $res->as_string; 
    print $block; # this is the full response 
} else { 
    die ($res->as_string."error in loading page"); 
} 

तो मैं यूआरएल के लिए एक GET संदेश भेजने और यह यूआरएल क्या पहुँच टोकन को रोकने के लिए पुन: निर्देशित किया जाना चाहिए:

यहाँ कोड है। लेकिन मैंने उसी यूआरएल पर रीडायरेक्ट किया जिसे मैंने बुलाया।

मैं एक्सेस टोकन कैसे प्राप्त कर सकता हूं? या मेरे कोड में गलती कहां है? या क्या कोई कामकाजी उदाहरण है?

+0

अगर तुम सिर्फ चिपकाया, ऐसा लगता है कि आप लिखने में कोई त्रुटि है: '" client_id = "$। clien_tid, ' – bolav

+0

धन्यवाद, – netdjw

+0

फिक्स्ड के लिए, यदि आप कोई अनुरोध कर रहे हैं तो मुझे लगता है कि इसे आपके कोड में डालने से पहले मोज़िला पर आरईएसटी के साथ परीक्षण करना बुद्धिमान है। – robel

उत्तर

1

प्रलेखन में, यह कहना है कि पैरामीटर वाला यूआरएल की तरह होना चाहिए:

GET https://login.live.com/oauth20_authorize.srf?client_id={client_id}&scope={scope}&response_type=token&redirect_uri={redirect_uri} 

आपका $URL पैरामीटर गलत लगता है। $URLhttps://login.live.com/oauth20_authorize.srf होना चाहिए और यूआरएल रीडायरेक्ट https://login.live.com/oauth20_desktop.srf होना चाहिए।

मैं कोड की कोशिश नहीं की क्योंकि मैं बनाने के लिए नहीं करना चाहते हैं और एमएस इस के लिए सिर्फ खाता;)

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