我正在尝试为日历创建一个事件,但得到此回复:
"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上,与我的公司用户相关的凭据可以创建事件,因此我推断它与日历设置或我的用户无关。
我在检索我的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" />
非常感谢帮助。
答案 0 :(得分:0)
根据此documentation,如果您尝试更改主要事件字段(“摘要”,“说明”,“位置”,“开始”,“结束”,则可能会收到403 Forbidden
响应事件的锁定标志所指示的“或”重复“)。在此相关post中,尝试使用Google API控制台中生成的服务帐户电子邮件与您的Google日历帐户共享日历。
问题在于分享我的日历。我不知道的东西。
要允许您在服务帐户中修改日历活动,但在Google Api控制台中执行的所有步骤都不够,您必须通过日历配置(日历配置 - >分享此日历)向电子邮件授予权限帐户指定到Google Api控制台(电子邮件地址)。
如果是商业帐户,则可能会出现问题,然后您必须与帐户管理员联系。
“我在检索accessRole
为reader
的日历活动时看到了。”
检查thread。它声明:
网络用户界面只允许您与Google Apps帐户所在域中的用户共享日历。要使用服务帐户,您必须在应用管理员中授予权限,如here所述(在步骤4中,选项名称错误,我不记得确切,但它是页面中的第3个链接)。
您还可以查看可能有帮助的相关SO question。
答案 1 :(得分:0)
所以问题是我使用来自MeetingRoom的emailId作为emailId,而不是使用我自己的电子邮件,并将会议室添加为参加者。