oauth - 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
我能做错什么?我的项目中还应该设置什么?
解决方案
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"
}
大多数情况下,问题是应用程序运行一次并请求了一个范围,然后开发该应用程序的开发人员更改了范围并忽略了强制应用程序再次请求用户授权。每次更改范围时,您都需要记住强制应用程序再次向用户显示同意屏幕,以便他们可以同意应用程序所需的范围。
应该有一种方法可以在您的应用程序中重置授权,但是由于您没有发布您的代码,或者您使用的是什么语言,我很难告诉您如何做到这一点。
如果你去安全,你可以直接在你的谷歌帐户中撤销你的应用程序的访问权限,然后它会强制它再次请求授权。
推荐阅读
- android - 单击推送通知时,未打开特定活动
- python - 在 Python 中使用另一个函数返回的输出
- c# - 如何在 xml 文件中查找特定节点?
- javascript - 使用 MediaRecorder 录制 5 秒的音频片段,然后上传到服务器
- c# - 如何设置 Outlook VSTO 插件
- javascript - 正则表达式查找带有冒号和肤色的表情符号名称
- angular - 服务器中的错误 500
- android - 如何在android库中实现Realm数据库?
- linux - 如何在 Linux 中使用脚本停止和启动屏幕作业
- jenkins - Jenkins Pipeline - 带有时间和输入的阶段