我将service-configuration
软件包添加到我的Meteor应用程序中,我正在尝试重新定义Google的auth范围,特别是让应用程序请求访问日历。默认设置为
ServiceConfiguration.configurations.update({}, {
service: 'google',
clientId: CLIENT_ID,
secret: CLIENT_SECRET,
loginStyle: 'redirect'
}, {
upsert: true
});
所以我试图做的是为选项对象添加额外的属性:
ServiceConfiguration.configurations.update({}, {
service: 'google',
clientId: CLIENT_ID,
secret: CLIENT_SECRET,
loginStyle: 'redirect',
requestPermissions: [
'https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/calendar.readonly'
]
}, {
upsert: true
});
它不起作用。文档很少。任何人都可以有一个方向,以便我可以通过Meteor应用程序中的Google API访问用户的日历数据吗?
我不使用Google的官方Node包,也不打算这样做。我相信通过透明的HTTP请求可以更轻松地从应用程序访问他们的API。
答案 0 :(得分:2)
查看所涉及的两个软件包(google和accounts-google),您似乎将选项放在错误的位置。它们不是从数据库中的服务配置中读取的,而是直接从第一个参数调用到loginWithGoogle
函数调用。
也就是说,以下内容应该可以工作(不会更改数据库中的服务配置):
Meteor.loginWithGoogle({
loginStyle: 'redirect',
requestPermissions: [
'https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/calendar.readonly'
]
}, function() { console.log("login successful); });
更新:
如果您使用loginButtons
模板,则更加容易,如documentation中所述:
Accounts.ui.config({
requestPermissions: {
google: [
'https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/calendar.readonly'
]
}
});