通过POST请求进行Google Calendar API身份验证

时间:2020-06-10 11:41:12

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

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

我采取了以下步骤来尝试并使用服务帐户:

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

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

我是否缺少某些步骤,或者我不正确理解身份验证过程? 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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

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

您需要完成一些步骤才能获得调用api所需的访问令牌

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

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

我建议您选择自己喜欢的服务器端编程语言并为其找到客户端库。这样一来,您便可以尝试轻松地使用服务帐户进行身份验证了。