【发布时间】:2020-02-08 20:28:31
【问题描述】:
我在使用 Node 和 Express 从 Google Fitness API 获取数据以用于我的应用程序时遇到问题。这是app.js的一部分:
app.get('/auth/google',
passport.authenticate('google',
{ scope: ['profile', 'https://www.googleapis.com/auth/fitness.activity.write'] }
));
app.get('<callback url>',
passport.authenticate('google'), (req, res) => {
res.json(req.user);
});
如您所见,我要求 2 个不同的范围。这是我使用passport-google-oauth20 的策略
这是我对passport.js 的特定数据点的策略:
passport.use(
new GoogleStrategy({
clientID: keys.google.clientID,
clientSecret: keys.google.clientSecret,
callbackURL:'<callback url>'
}, (accessToken, refreshToken, profile, done) => {
console.log(profile);
}
)
)
然而,问题在于,在控制台中,我只获得了第一个范围 "profile" 及其所有属性,但没有与健身相关的信息。知道有什么问题吗?我应该使用不同的策略实施吗?目前,此代码挂在google的登录和控制台记录个人资料信息,这是正常的。
有什么想法吗?谢谢。
【问题讨论】:
-
如果我错了,请有人纠正我,但是您现在不应该能够使用请求的 accessToken 调用健身 api 吗? (
https://www.googleapis.com/fitness/v1/users/me/dataSources) 见:https://developers.google.com/fit/rest/v1/get-started
标签: node.js express passport.js google-oauth google-fit