CalendarApi 403 禁止
Posted
技术标签:
【中文标题】CalendarApi 403 禁止【英文标题】:CalendarApi 403 Forbidden 【发布时间】:2017-01-20 23:50:36 【问题描述】:我正在尝试为日历创建一个事件,但得到以下响应:
"code" : 403,
"errors" : [
"domain" : "global",
"message" : "Forbidden",
"reason" : "forbidden"
],
"message" : "Forbidden"
这是我的要求:
event.setStart(new EventDateTime().setDateTime(start));
event.setEnd(new EventDateTime().setDateTime(end));
event.setCreator(new Event.Creator().setEmail("...@..dk));
calendarService.events().insert(emailId, event)
.setOauthToken(GlobalStateController.getGrapevineToken());
我正在使用 Google 登录,它工作正常,而且我可以轻松检索不同日历的事件。我使用来自 GoogleSignInResponse
的 Google 令牌。
此外,在 ios 上,与我的公司用户相关的凭据可以创建事件,因此我推断它与日历设置或我的用户一般无关。
我在检索日历事件时看到我的 accessRole
是 reader
,这很有趣,因为我有这 3 个凭据。
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
非常感谢您的帮助。
【问题讨论】:
【参考方案1】:根据此documentation,如果您尝试更改主要事件字段(“summary”、“description”、“location”、“start”、“end”或“重复”),事件的锁定标志指示。通过这个相关的post,尝试将您的 Google 日历帐户中的日历与 Google API 控制台中生成的服务帐户电子邮件共享。
问题在于共享我的日历。我不知道的东西。
要允许从服务帐户编辑您的日历事件,您在 Google Api 控制台中执行的所有步骤还不够,您必须从您的日历配置(日历配置 -> 共享此日历)中向电子邮件帐户授予权限指定到 Google Api 控制台(电子邮件地址)。
如果是企业帐户,这可能是个问题,那么您必须联系帐户管理员。
“我在检索日历事件时看到我的accessRole
是reader
。”
检查此thread。它指出:
网络用户界面仅允许您与您的 Google Apps 帐户所在域的用户共享日历。为了使用服务帐户,您必须在 Apps Admin 中授予它权限,如here 所述(在第 4 步中,选项名称错误,我记不清了,但这是第三个链接在页面中)。
您也可以查看相关的SO question,这可能会有所帮助。
【讨论】:
【参考方案2】:所以问题是我使用来自会议室的 emailId 作为 emailId,而不是使用我自己的电子邮件,并将会议室添加为参加者。
【讨论】:
以上是关于CalendarApi 403 禁止的主要内容,如果未能解决你的问题,请参考以下文章
windows server 2003 iis配置 出现 http 403 禁止访问,怎么办,网页内显示“你无权查看该网页”