7

我一直在尝试使用服务帐户访问 Calendar v3 API。我已经从管理控制台添加了范围 https://www.googleapis.com/auth/calendar并与该服务帐户的电子邮件地址共享了我的日历。

我也一直在使用相同的服务帐户访问https://www.googleapis.com/auth/coordinate范围,并且工作正常。

此外,尝试撤销访问,如此处所述:为什么 Google Calendar API (oauth2) 以“权限不足”响应?

所有这一切,我仍然得到;

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

我错过了什么吗?

4

4 回答 4

4

尝试将“userinfo.email”添加到您的范围,并在开发者控制台“Contacts API”和“Google+ API”中启用。我花了 2 周时间寻找这个问题的答案,这个技巧对我有用。

于 2014-12-03T15:51:12.503 回答
0

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

更新:

$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
);

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

于 2014-11-11T19:29:24.337 回答
0

我认为如果您使用 Google Calendar Quickstart for Ruby,我认为您应该删除指定路径中的凭据...我尝试了一下,效果很好...您可以在此处查看凭据的放置位置

CREDENTIALS_PATH = File.join(Dir.home, '.credentials',
                             "calendar-ruby-quickstart.yaml")

在您的主目录中,您可能会在您批准 Google 访问您的数据的请求后找到 Google 存储您的凭据的目录。

于 2016-01-19T16:10:16.057 回答
0

首先改变

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

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

然后在您的文档文件夹中删除.credentials文件夹

并再次运行。

这对我有用!

于 2018-03-27T06:48:43.937 回答