Google快速入门和Javascript

时间:2015-03-11 15:06:11

标签: javascript node.js google-drive-api

尝试了解如何使用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

谢谢! 杰夫

0 个答案:

没有答案