将Angular-.NET应用程序与Google Calendar API同步

时间:2019-11-08 08:41:49

标签: angular asp.net-core google-calendar-api

我想使用OAuth2将Google Calenar API集成到我的.NET应用程序中,以便每个用户登录时都能看到自己的日历。

我想将生成的代码保存到数据库中。

我开始这样做,并且在角度方面添加了此功能,该功能可以连接到您的Google日历并获取您的私人代码,然后将其发送到背面:

  handleAuthClick() {
    let self = this;
    gapi.auth2.getAuthInstance().grantOfflineAccess()
      .then(value => {
        const optionsParams = {
          params: new HttpParams()
            .set('code', value.code)
        };
        self.http.get("http://localhost:59933/api/UserCode", optionsParams)
          .subscribe(data => {
            console.log(data);
          })
      });
  }

现在,我希望每当用户登录到该应用程序时都使用此代码来检索日历数据(全天候需要将其他时间连接到Google日历)

我从这里开始,但是这里没有关于OAuth2的信息:

https://developers.google.com/calendar/quickstart/dotnet

有帮助吗?谢谢

1 个答案:

答案 0 :(得分:1)

我假设您将用户的刷新令牌以及该用户的自定义ID保存在数据库中。

要了解这一点,请熟悉OAuth2

基本上:

  • 您将把刷新令牌与您的应用程序ID一起发送给Google。
  • Google将收到此邮件,请检查您要授权的用户(刷新令牌)是否仍允许您的应用程序(应用程序ID)继续运行。
    • 在这种情况下,Google会使用具有到期日期的访问令牌来答复。
    • 如果Google认为您的刷新令牌和/或您的应用程序ID无效,它将拒绝您的请求。发生这种情况时,您将不得不再次执行整个“连接到日历”步骤。

虽然访问令牌有效,但是您可以在应用程序中使用它来获取数据,而无需提示用户提供更多信息。