首页 > 解决方案 > Google Calendar API - 权限不足

问题描述

当我尝试将事件添加到我的日历时收到以下错误。

 {
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Insufficient Permission",
    "reason" : "insufficientPermissions"
  } ],
  "message" : "Request had insufficient authentication scopes.",
  "status" : "PERMISSION_DENIED"
}

我设置了以下权限:

Google Calendar API .../auth/calendar   See, edit, share, and permanently delete all the calendars you can access using Google Calendar 
Google Calendar API .../auth/calendar.events    View and edit events on all your calendars  
Google Calendar API .../auth/calendar.events.owned  See, create, change, and delete events on Google calendars you own

我能做错什么?我的项目中还应该设置什么?

标签: oauthgoogle-apicalendargoogle-oauthgoogle-calendar-api

解决方案


Google 日历 api events.insert方法需要以下范围之一才能工作。

在此处输入图像描述

这意味着当您的应用程序运行时,必须向用户显示授权同意窗口,他们将同意您的应用程序有权写入他们的日历。

以下错误消息意味着您的应用程序已运行并且用户同意范围不够高,无法授予您访问使用 event.insert 方法的权限。您可能已经运行了您的应用程序并且只同意用户阅读范围。这不足以让应用程序运行然后能够插入事件

{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Insufficient Permission",
    "reason" : "insufficientPermissions"
  } ],
  "message" : "Request had insufficient authentication scopes.",
  "status" : "PERMISSION_DENIED"
}

大多数情况下,问题是应用程序运行一次并请求了一个范围,然后开发该应用程序的开发人员更改了范围并忽略了强制应用程序再次请求用户授权。每次更改范围时,您都需要记住强制应用程序再次向用户显示同意屏幕,以便他们可以同意应用程序所需的范围。

应该有一种方法可以在您的应用程序中重置授权,但是由于您没有发布您的代码,或者您使用的是什么语言,我很难告诉您如何做到这一点。

如果你去安全,你可以直接在你的谷歌帐户中撤销你的应用程序的访问权限,然后它会强制它再次请求授权。


推荐阅读