2013-11-24 28 views
6

Düğüm web kümesinde çalışmak için Google Drive API'sini almaya çalışıyorum.Node-webkit ve google drive api

Yetkilendirme iletisi gönderildiğinde, reddedilen bir Dosya Kökü: // ile gönderilir. Herkes google düğüm-webkit mesafede auth bilen -

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 

Değil emin niçin GAPI gelen böyle gönderilir?

+0

Benim tahminim GAPI düğümü ile yazılmamış olmasıdır bir kullanım durumu olarak. Benim kısa önerim onu ​​kullanmıyor. URL'nin neye benzemesi gerektiğini biliyorsunuz, bu yüzden doğrudan arama yapıp JSON yanıtını çözümleyin. – pinoyyid

+0

Tavsiyenizi aldım - REST masaüstü çözümünü uygulamak yeterince kolaydı. – ed4becky

cevap

4

OAuth için API'yi atlamayı seçtim ve kendim yaparım.

Kullanıcı bir kimlik kodunu kopyalayıp uygulamanıza yapıştırmalı - ilk tercih değil, ancak bunu yalnızca bir kez yapmak zorundadır ve (alternatifinin olmaması) tercih edilir. ilgilenenler için kod paylaşımı

:

  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'); 

Bu onlara izin ver ve onlara auth kodunu gösterir kullanımına açması bir açılır pencere üretir:

kullanıcı Google'da sürücü seçin

. doğrulama kodu Uygulamamda yapıştırılır

, ben DB kaydedin ve ben sonra DB kaydetmek erişim kodu, alma işlemine devam:

  $.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(); 
       } 
      }); 
İlgili konular