Google API NodeJS Library OAuth2请求
我正在尝试设置Google API使用授权,以便向网站站长工具API发出请求,但似乎无法理解如何触发身份validation。 我build立了一个路由,它应该在访问时触发authentication权限调用,但是我得到一个连续的负载信号,没有收到数据响应。 我正在使用Google的图书馆https://github.com/google/google-api-nodejs-client/ ,并将我的OAuth2客户端ID凭据redirect到指向http://localhost:3000/
uri,因为我想testing本地安装。
这是我的代码:
index.js
var express = require('express'); var app = express(); var handlebars = require('hbs'); var google = require('googleapis'); var webmastertools = google.webmasters('v3'); app.set('port', process.env.PORT || 3000); // Handlebars View Engine app.set('view engine', handlebars); app.use(express.static(__dirname + '/public')); // set the public directory app.listen(app.get('port'), function(){ console.log('Server on port'+app.get('port')); }); var routes = require('./app/routes'); app.use(routes);
这是我的route.js:
var express = require('express'); var router = express.Router(); var google = require('googleapis'); var OAuth2 = google.auth.OAuth2; var oauth2Client = new OAuth2('*client-id*', '*client-secret*', 'http://localhost:3000/'); router.get('/', function(req, res){ res.render('index.hbs'); }); router.get('/auth', function(req, res){ //generater a url that asks permissions for Webmaster Tools var scopes = [ 'https://www.googleapis.com/auth/webmasters' ]; var url = oauth2Client.generateAuthUrl({ access_type: 'online', scope: scopes }); }); router.get('404', function(req, res){ res.type('text/plain'); res.status(404); res.send('404 - Not Found'); }); router.get('500', function(err,req, res, next){ console.error(err.stack); res.type('text/plain'); res.status(500); res.send('500 - Server Error'); }); module.exports = router;
我认为你应该redirect到由generateAuthUrl提供的授权URL。 就像是:
router.get('/auth', function(req, res){ //generater a url that asks permissions for Webmaster Tools var scopes = [ 'https://www.googleapis.com/auth/webmasters' ]; var url = oauth2Client.generateAuthUrl({ access_type: 'online', scope: scopes }); res.redirect(url); });
这将把用户带到允许范围的同意页面,然后被redirect到你的redirecturl。 我没有在我面前,但我认为这就是我做到的。
- 如何使用节点js googleapis客户端上传和更新youtube频道横幅
- 在Google云端存储中使用nodejs gcloud api移动/重命名文件夹
- Google Page Speed Insights – 基本authentication
- 谷歌API日历手表不起作用,但渠道创build
- 如何使用Nodejs插入到BigQuery?
- 如何自动获取节点谷歌API的授权令牌为Gmail
- nodejs googleapis,authClient.request不是一个函数
- GoogleloginNodejs中的Android服务器端身份validation
- 获取Google Drive NodeJS客户端的上传进度?