2013-11-24 11 views
6

नोड-वेबकिट में काम करने के लिए Google ड्राइव एपीआई प्राप्त करने का प्रयास कर रहा है।नोड-वेबकिट और Google ड्राइव एपीआई

जब लेख संदेश भेजा जाता है, तो इसे फ़ाइल की उत्पत्ति के साथ भेजा जाता है: // जिसे अस्वीकार कर दिया जाता है। किसी को भी प्रमाणन के लिए कैसे गूगल नोड वेबकिट से ड्राइव पता है -

https://accounts.google.com/o/oauth2/auth 
?client_id=<some value> 
&scope=https://www.googleapis.com/auth/drive.appdata 
https://www.googleapis.com/auth/drive.file 
https://www.googleapis.com/auth/drive 
&immediate=true 
&proxy=oauth2relay1232990068 
&redirect_uri=postmessage 
&origin=file:// 
&response_type=token 
&state=1938150804|0.1319366391 
&authuser=0 
नहीं

यकीन है कि क्यों यह gapi से उस तरह से भेज दिया जाता है?

+0

मेरा अनुमान है कि gapi नोड के साथ नहीं लिखा गया था है एक उपयोग के मामले के रूप में। मेरा संक्षिप्त सुझाव इसका उपयोग नहीं करता है। आप जानते हैं कि URL को किस तरह दिखने की आवश्यकता है, इसलिए बस इसे सीधे कॉल करें और JSON प्रतिक्रिया को पार्स करें। – pinoyyid

+0

मैंने आपकी सलाह ली - आरईएसटी डेस्कटॉप समाधान को लागू करना काफी आसान था। – ed4becky

उत्तर

4

मैंने ओएथ के लिए एपीआई को बाईपास करने का विकल्प चुना और इसे स्वयं किया।

उपयोगकर्ता को एक ऑथ कोड कॉपी करना है और इसे अपने ऐप में पेस्ट करना है - पहली पसंद नहीं, लेकिन उन्हें केवल एक बार ऐसा करना है और यह विकल्प (कमी की) के लिए बेहतर है।

उन दिलचस्पी के लिए कोड साझा करना:

उपयोगकर्ता गूगल ड्राइव चुनते हैं:

  window.open('https://accounts.google.com/o/oauth2/auth?' 
        + 'client_id=<some value>' 
        + '&scope=<space delimited list of permissions>' 
        + '&redirect_uri=urn:ietf:wg:oauth:2.0:oob' 
        + '&response_type=code'); 

यह एक पॉपअप है कि उन्हें अनुमति दें और उन्हें प्रमाणन कोड प्रस्तुत है पैदा करता है।

जब प्रमाणन कोड मेरे ऐप में चिपकाया जाता है, मैं इसे डीबी को बचाने के लिए और एक पहुँच कोड है, जो मैं तो डीबी को बचाने के लिए हो रही के साथ आगे बढ़ना:

  $.ajax({ 
       url: "https://accounts.google.com/o/oauth2/token", 
       type: 'post', 
       data: { 
        code: <authCode>, 
        client_id: CLIENT_ID, 
        client_secret: CLIENT_SECRET, 
        redirect_uri: 'urn:ietf:wg:oauth:2.0:oob', 
        grant_type: 'authorization_code' 
       } 
      }).error(function(data) { 
       myObj.isAuth = false; 
       if (cbFail) { 
        cbFail(data); 
       } 
      }).success(function(data) { 
       myObj.isAuth = true; 
       <persist entire response> 
       if (cbSuccess) { 
        cbSuccess(); 
       } 
      }); 
संबंधित मुद्दे