Javascript 无法刷新访问令牌-谷歌日历api

Javascript 无法刷新访问令牌-谷歌日历api,javascript,google-calendar-api,google-api-js-client,Javascript,Google Calendar Api,Google Api Js Client,问候我的开发者们 我正在做一个项目,客户需要连接谷歌日历与项目。 我正在使用GAPI将谷歌日历与我的应用程序连接起来。 以下是我正在做的: 步骤1: let config = { apiKey: [API_KEY], clientId: [CLIENT_ID], access_type: 'offline', discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest

问候我的开发者们 我正在做一个项目,客户需要连接谷歌日历与项目。 我正在使用GAPI将谷歌日历与我的应用程序连接起来。 以下是我正在做的:

步骤1:

let config = {
    apiKey: [API_KEY],
    clientId: [CLIENT_ID],
    access_type: 'offline',
    discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest'],
    scope: 'https://www.googleapis.com/auth/calendar.events'
}
gapi.load('client:auth2', () => {
    gapi.client.init(config).then(() => {
        gapi.auth2.getAuthInstance().isSignedIn.listen(true);
    });
});
步骤2:

Promise.resolve(gapi.auth2.getAuthInstance().signIn()).then(response => {
    store access_token, id_token, login_hint
}).then(() => {
    run_different_axios_requests_to_google_calendar();
});
或者如果我已经有访问令牌:

run_different_axios_requests_to_google_calendar();
直到这一点,它运行完美


当访问令牌过期时会出现问题,阅读文档,我发现如果运行
gapi.auth2.getAuthInstance()。grantoflineaccess()
而不是
gapi.auth2.getAuthInstance().signIn()
你会得到
refresh\u token
以及
access\u token
id\u token
登录提示
,但我没有得到响应,事实上我的承诺表明
这个应用没有得到验证,我需要刷新令牌,以便在访问令牌到期时获得新令牌,而无需要求用户再次登录(通过承诺)。我不知道我做错了什么!感谢您的帮助

这里有一个来自谷歌的例子,让你可以使用新的JS库来解锁谷歌应用程序的威力。它详细解释了从身份验证到使用GAPI库(如Calendar API)的一步一步的过程。

hello jess!我已经尝试了你提到的文档,它正在工作,没有必要在我的终端上保存access_令牌(用于将来的呼叫),但它解决了这个问题,但它显示了另一个问题,我希望能够从loggedin用户获取日历事件,这意味着,它应该能够根据任何用户登录的情况进行呼叫,这样做的目的是它请求一次权限,然后使用该权限响应进行进一步的调用,如果新用户登录,调用仍然是前一个用户而不是新用户!我希望我已经很好地解释了我的观点,