nodejs googleapis calendar.events密钥问题

时间:2018-06-17 05:50:39

标签: node.js google-api google-calendar-api

我尝试使用nodejs googleapis包从用户日历中获取事件。我使用护照将用户登录Google,并使用以下范围:

import Minor from './minor.png'

class SearchBar extends component{
 render(){
  return(
     <img src={Minor} alt="myLogo" />
  )
 }
}

这一切似乎工作正常,护照收到令牌,个人资料等......所以我试图像这样获取日历事件:

scope = [
  'https://www.googleapis.com/auth/calendar',
  'https://www.googleapis.com/auth/calendar.readonly',
  'https://www.googleapis.com/auth/userinfo.profile',
  'profile',
  'email'
],
传递给该函数的

module.exports = (token) => { const calendar = google.calendar({ version: 'v3', auth: token }); return new Promise((resolve, reject) => { calendar.events.list({ calendarId: 'primary', timeMin: (new Date()).toISOString(), maxResults: 10, singleEvents: true, orderBy: 'startTime', }, (err, events) => { if (err) { console.log(err); return reject(err); } resolve(events); }); }); }; 是我在护照​​登录期间获得的token。我得到的错误是:

accessToken

现在,显然,这表明我没有正确使用密钥,但我能够找到的示例显示,在初始调用0|www | errors: 0|www | [ { domain: 'usageLimits', 0|www | reason: 'keyInvalid', 0|www | message: 'Bad Request' } ] } 时将访问令牌传入。我可能会忽略任何想法?记录令牌会在控制台中生成正确的令牌,因此令牌正确地进入。谢谢你!

1 个答案:

答案 0 :(得分:0)

问题是我没有正确实现refreshToken的使用。我现在使用的模式是使用refreshToken在每个请求中获取一个新令牌。