CalendarApi 403 Forbidden

时间:2016-09-13 11:32:52

标签: android calendar google-calendar-api

我正在尝试为日历创建一个事件,但得到此回复:

  "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 signIn工作正常,我可以毫不费力地检索不同日历的事件。我使用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" />

非常感谢帮助。

2 个答案:

答案 0 :(得分:0)

根据此documentation,如果您尝试更改主要事件字段(“摘要”,“说明”,“位置”,“开始”,“结束”,则可能会收到403 Forbidden响应事件的锁定标志所指示的“或”重复“)。在此相关post中,尝试使用Google API控制台中生成的服务帐户电子邮件与您的Google日历帐户共享日历。

  

问题在于分享我的日历。我不知道的东西。

     

要允许您在服务帐户中修改日历活动,但在Google Api控制台中执行的所有步骤都不够,您必须通过日历配置(日历配置 - >分享此日历)向电子邮件授予权限帐户指定到Google Api控制台(电子邮件地址)。

     

如果是商业帐户,则可能会出现问题,然后您必须与帐户管理员联系。

“我在检索accessRolereader的日历活动时看到了。”

检查thread。它声明:

  

网络用户界面只允许您与Google Apps帐户所在域中的用户共享日历。要使用服务帐户,您必须在应用管理员中授予权限,如here所述(在步骤4中,选项名称错误,我不记得确切,但它是页面中的第3个链接)。

您还可以查看可能有帮助的相关SO question

答案 1 :(得分:0)

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