通过OAuth 2.0使用服务帐户调用v3的谷歌日历API时,403禁止消息(403 Forbidd

2019-07-17 12:49发布

这是一个从我的线程使用谷歌日历API和OAuth2用户,可以发现,当遵循有关401错误这里

这包含帐户设置,导致到我的下一个问题的细节,所以我不会重复自己在这个线程。

OK,所以当我叫下面的代码更新日历事件中,我得到一个403 Forbidden错误。

for (Event event : events.getItems())
{
    event.setSummary("XXX" + event.getSummary());

    Event updatedEvent = calendar.events().update(CALENDAR_ID, event.getId(), event).execute();
}

这里是返回的错误信息:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
    "code" : 403,
    "errors" : [ {
        "message" : "Forbidden"
     } ],
    "message" : "Forbidden"
}

我有什么企图? 好了,我已经重新阅读有关服务帐户,(非常差)谷歌文档重新检查了我的API控制台帐户设置,试图改变这种建立凭证(这会导致其他错误,所以是我以前的螺纹回归)的代码。

总之,没有什么作品,所以有什么明显的我失踪?

Answer 1:

解决了,感谢这个帖子。

你必须从与在谷歌API控制台,如284XXXXXXXX@developer.gserviceaccount.com产生的服务帐户的电子邮件您的谷歌日历帐户共享的日历。

我现在可以更新从我的web服务我的日历。



Answer 2:

甚至可以共享日历作为Justin的回答后,我也得到同样的错误。 与其他工作比较采样后想通了,我已经设置

var SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"];

代替

var SCOPES = ["https://www.googleapis.com/auth/calendar"];

希望这有助于人谁也做了类似的错误,并收到此错误。



文章来源: 403 Forbidden message when calling the v3 Google Calendar API using a Service Account via OAuth 2.0