【问题标题】:Google Calendar api authentication via POST request通过 POST 请求进行 Google Calendar api 身份验证
【发布时间】:2020-06-10 20:03:00
【问题描述】:

我正在尝试向谷歌日历 api 发出 POST 请求,但我不明白如何对其进行身份验证。

我采取了以下步骤来尝试使用服务帐户来执行此操作:

  1. 我已在 Google Cloud 控制台中启用日历 API
  2. 我创建了一个新的服务帐户,启用了 G Suite 域范围委派,并下载了提供的密钥。
  3. 我已将服务帐户电子邮件添加到日历中,以便能够进行更改和创建活动。
  4. 我尝试使用 JSON 键的内容作为 Authorization 标头的值创建对 https://www.googleapis.com/calendar/v3/calendars/calendarId/events 的 POST 请求,但我收到以下错误:

    { "error": { "errors": [ { "domain": "global", "reason": "authError", "message": "Invalid Credentials", "locationType": "header", "location": "Authorization" } ], "code": 401, "message": "Invalid Credentials" } }

我是否遗漏了一些步骤,或者我没有正确理解身份验证过程? 非常感谢您的帮助。

【问题讨论】:

    标签: post google-cloud-platform google-calendar-api service-accounts


    【解决方案1】:

    这不仅仅是将密钥文件的内容应用到您的调用中,所有 google api 都需要访问令牌才能对其进行身份验证。

    要从服务帐户获取访问令牌,您需要执行以下步骤。 Preparing to make an authorized API call

    您需要完成一些步骤才能获取访问令牌,然后才能调用 api

    从 API 控制台获取客户端 ID 和私钥后,您的应用需要完成以下步骤:

    1. 创建包含标头、声明集和签名的 JSON Web 令牌(JWT,发音为“jot”)。
    2. 从 Google OAuth 2.0 授权服务器请求访问令牌。
    3. 处理授权服务器返回的 JSON 响应。

    我建议您选择您最喜欢的服务器端编程语言并为其找到一个客户端库。与您尝试自己使用服务帐户进行身份验证相比,这将使事情变得容易得多。

    【讨论】:

      猜你喜欢
      • 2014-09-15
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多