【问题标题】:Synchronise angular - .NET application with google Calendar API使用谷歌日历 API 同步 Angular - .NET 应用程序
【发布时间】:2020-03-04 21:11:45
【问题描述】:

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

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

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

  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);
          })
      });
  }

现在我想在用户登录应用程序时使用此代码检索日历数据(whiteout 需要在另一个时间连接到谷歌日历)

我从这个开始,但这里没有关于 OAuth2 的内容:

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

有什么帮助吗?并感谢

【问题讨论】:

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


    【解决方案1】:

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

    要了解这一点,请熟悉OAuth2

    基本上:

    • 您将连同您的应用程序 ID 一起将刷新令牌发送给 Google。
    • Google 将收到此信息,请检查您尝试授权的用户(刷新令牌)是否仍允许您的应用程序(应用程序 ID)继续进行。
      • 如果是这种情况,Google 将使用具有过期日期的访问令牌进行回复。
      • 如果 Google 认为您的刷新令牌和/或您的应用程序 ID 无效,它将拒绝您的请求。发生这种情况时,您将不得不再次完成整个“连接到日历”步骤。

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

    【讨论】:

    • 谢谢,但我认为你有一个小错误。使用 Oauth2,我将使用特定代码来获取刷新令牌。请在此处查看此图片:developers.google.com/accounts/images/webflow.png
    • @zarzou 是的,这个令牌是您的客户端 ID(在我的回答中称为应用程序 ID)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多