尝试了解如何使用google drive API,因此尝试使用nodejs快速启动示例代码: https://developers.google.com/drive/web/quickstart/quickstart-nodejs
两个问题...... 1)目前还不清楚我应该将哪种形式的URL重定向用于誓言,因为对于幕后发生的事情的可见性有限...... 我应该使用EG:urn:ietf:wg:oauth:2.0:oob还是http://localhost?
2)当我使用其中一个选项运行代码时,我从nodejs收到有关未定义函数的错误消息。本案例中的程序称为TestGoogleDriveAPI,但它是google站点上quickstart.js代码的精确副本。 (填写了各种参数后,我将其隐藏起来以保护隐私)。特别是:
var googleapis = require('googleapis'),
readline = require('readline');
var CLIENT_ID = 'XXXXXXXXXXXXX-cbpbrv1og6pki0t7kebjf1io0j7pg2hv.apps.googleusercontent.com',
CLIENT_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxx',
//REDIRECT_URL = 'http://localhost',
REDIRECT_URL = 'urn:ietf:wg:oauth:2.0:oob',
SCOPE = 'https://www.googleapis.com/auth/drive.file';
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var auth = new googleapis.OAuth2Client(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
googleapis.discover('drive', 'v2').execute(function(err, client) {
var url = auth.generateAuthUrl({ scope: SCOPE });
var getAccessToken = function(code) {
auth.getToken(code, function(err, tokens) {
if (err) {
console.log('Error while trying to retrieve access token', err);
return;
}
auth.credentials = tokens;
upload();
});
};
var upload = function() {
client.drive.files
.insert({ title: 'My Document', mimeType: 'text/plain' })
.withMedia('text/plain', 'Hello World!')
.withAuthClient(auth).execute(console.log);
};
console.log('Visit the url: ', url);
rl.question('Enter the code here:', getAccessToken);
});
我从NodeJS收到的错误如下:
\ GoogleWork \ TestGoogleDriveAPI.js:16 var auth = googleapis.OAuth2Client(CLIENT_ID,CLIENT_SECRET,REDIRECT_URL);
^ TypeError:undefined不是函数
在对象。 (C:\ GoogleWork \ TestGoogleDriveAPI.js:16:23)
在Module._compile(module.js:460:26)
在Object.Module._extensions..js(module.js:478:10)
在Module.load(module.js:355:32)
在Function.Module._load(module.js:310:12)
在Function.Module.runMain(module.js:501:10)
在启动时(node.js:129:16)
at node.js:814:3
谢谢! 杰夫