2016-08-09 2 views
0

Um die Aktualisierung des Inhalts auf unserem Informationsbildschirm zu erleichtern, möchten wir den Inhalt auf Google Drive veröffentlichen und anschließend die Synchronisierung des Inhalts über eine NodeJS-basierte Anwendung ermöglichen.Dateien von Google Drive über die Befehlszeile in Node.js abrufen?

Im Moment versuche ich diesen Ansatz mit einem Ordner zu testen, der von meinem eigenen Konto freigegeben wurde.

Was ich bisher an https://github.com/google/google-api-nodejs-client/tree/master auf der Dokumentation basiert:

var google = require('googleapis'); 
var OAuth2 = google.auth.OAuth2; 
var readline = require('readline'); 

const CLIENT_ID = 'xxxxxxxx.apps.googleusercontent.com'; 
const CLIENT_SECRET = '7h3c13n7s3cr37'; 
const REDIRECT_URL = 'https://accounts.google.com/o/oauth2/auth'; 

var oauth2Client = new OAuth2(
CLIENT_ID, CLIENT_SECRET, REDIRECT_URL); 

var scopes = [ 
'https://www.googleapis.com/auth/drive.readonly', 
'https://www.googleapis.com/auth/drive.metadata.readonly' 
]; 

var url = oauth2Client.generateAuthUrl({ 
    access_type: 'offline', // 'online' (default) or 'offline' (gets refresh_token) 
    scope: scopes // If you only need one scope you can pass it as string 
}); 

console.log('past following URL into a web browser'); 
console.log(url); 

const rl = readline.createInterface({ 
    input: process.stdin, 
    output: process.stdout 
}); 

rl.question('Provide Key generated on web page ', (answer) => { 

    // store response key in file? 

    var drive = google.drive({ version: 'v2', auth: oauth2Client }); 

    var folderId = 'mif01d3r'; 

    drive.children.list({ 
     auth: answer, 
     folderId: folderId, 
    }, function(error, response) { 
     if (error) { 
      console.log('err: ', error); 
      return; 
     } 
     console.log(response); 
    }); 

}); 

Die aktuelle Ausgabe hier ist, dass der Wert für ‚REDIRECT_URL‘ nicht geeignet zu sein scheinen. Was sollte ich hier für eine Befehlszeilenanwendung eingeben?

Antwort

1

https://developers.google.com/api-client-library/python/auth/installed-app#choosingredirecturi ist mehr für Python, aber die unten gilt für alle "Installierte Anwendungen"

urn: ietf: wg: oauth: 2,0: oob

Dieser Wert Signale an den Google Autorisierungsserver, dass der Autorisierungscode in der Titelleiste des Browsers zurückgegeben werden soll. Der Seitentext fordert den Benutzer auf, den Code zu kopieren und in die Anwendung einzufügen. Dies ist nützlich, wenn der Client (z. B. eine Windows-Anwendung) keinen HTTP-Port ohne wesentliche Clientkonfiguration abhören kann.

Siehe auch: https://developers.google.com/identity/protocols/OAuth2InstalledApp#choosingredirecturi


so sollte es sein:

const REDIRECT_URL = 'urn:ietf:wg:oauth:2.0:oob'; 
+0

Zusätzlich diese Probe Siehe stellt auch ein gutes Beispiel in NodeJS: https://github.com/google/google-api- nodejs-client/blob/master/proben/oauth2.js –

Verwandte Themen