Ruby on rails Google calendar v3返回403权限不足

Ruby on rails Google calendar v3返回403权限不足,ruby-on-rails,google-api,google-calendar-api,http-status-code-403,google-api-client,Ruby On Rails,Google Api,Google Calendar Api,Http Status Code 403,Google Api Client,我一直在尝试使用服务帐户访问CalendarV3API。我已经从管理控制台添加了范围,并与该服务帐户的电子邮件地址共享了我的日历 我也一直在使用同一个服务帐户访问scope,效果很好 此外,尝试取消访问,如下所述: 所有这一切,我仍然得到 {"error"=> {"errors"=> [{"domain"=>"global", "reason"=>"insufficientPermissions", "message"=>"Ins

我一直在尝试使用服务帐户访问CalendarV3API。我已经从管理控制台添加了范围,并与该服务帐户的电子邮件地址共享了我的日历

我也一直在使用同一个服务帐户访问scope,效果很好

此外,尝试取消访问,如下所述:

所有这一切,我仍然得到

{"error"=>
  {"errors"=>
    [{"domain"=>"global",
      "reason"=>"insufficientPermissions",
      "message"=>"Insufficient Permission"}],
   "code"=>403,
   "message"=>"Insufficient Permission"}}

我错过了什么吗?

你对此感到高兴吗?我撞到了同样的砖墙

更新:

$key = file_get_contents($key_file_location);
$scopes = array('https://www.googleapis.com/auth/calendar');
$cred = new Google_Auth_AssertionCredentials(
    $service_account_name,
    $scopes,
    $key
);

在与服务电子邮件帐户共享日历后,这对我的授权有效。

尝试将“userinfo.email”添加到您的作用域中,并在开发者控制台中启用“联系人API”和“Google+API”。我花了两周的时间搜索这个问题的答案,这个技巧对我很有效。

我认为如果你使用Google Calendar Quickstart for Ruby,我认为你应该删除指定路径中的凭据……我尝试了一下,效果很好。。。你可以在这里看到凭证放在哪里

CREDENTIALS_PATH = File.join(Dir.home, '.credentials',
                             "calendar-ruby-quickstart.yaml")
在您的主页目录中,您可能会找到一个目录,在您批准Google访问您的数据的请求后,Google会将您的凭证存储在该目录中。

首先是更改

static string[] Scopes = { CalendarService.Scope.CalendarReadonly };

然后在“文档”文件夹中删除
。凭据
文件夹

然后再跑


这对我有用

你是说你使用的整个谷歌账户?你能调用类似listCalendarList的东西吗,或者你只能在特定的日历上操作吗?我现在可以做各种各样的Google\u服务\u日历\u事件的事情,你被什么卡住了吗?我无法让服务帐户的东西工作。我可以打一些基本的电话,但如果不在谷歌应用程序领域,这似乎是有限的。切换到使用OAuth,这对我们的应用程序来说不太方便,但调用实际上是有效的。@erjoalgo您使用Ruby和RubyonRails了吗?我问这个问题是因为正如我从SO标记中看到的,您是在Python上编写的。
static string[] Scopes = { CalendarService.Scope.Calendar };