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 上,与我的公司用户相关的凭据可以创建事件,因此我推断它与日历设置或我的用户一般无关。

我在检索日历事件时看到我的 accessRolereader,这很有趣,因为我有这 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 控制台(电子邮件地址)。

如果是企业帐户,这可能是个问题,那么您必须联系帐户管理员。

“我在检索日历事件时看到我的accessRolereader。”

检查此thread。它指出:

网络用户界面仅允许您与您的 Google Apps 帐户所在域的用户共享日历。为了使用服务帐户,您必须在 Apps Admin 中授予它权限,如here 所述(在第 4 步中,选项名称错误,我记不清了,但这是第三个链接在页面中)。

您也可以查看相关的SO question,这可能会有所帮助。

【讨论】:

【参考方案2】:

所以问题是我使用来自会议室的 emailId 作为 emailId,而不是使用我自己的电子邮件,并将会议室添加为参加者。

【讨论】:

以上是关于CalendarApi 403 禁止的主要内容,如果未能解决你的问题,请参考以下文章

windows server 2003 iis配置 出现 http 403 禁止访问,怎么办,网页内显示“你无权查看该网页”

自定义 403 禁止使用重写条件

HTTP 错误 403.9 - 禁止访问:连接的用户过多

得到403禁止错误[重复]

.htaccess 403 禁止排除

列表订阅操作:403 禁止