Google日历v3会返回403不足的权限

时间:2013-10-11 20:28:05

标签: ruby-on-rails google-api google-calendar-api http-status-code-403 google-api-client

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

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

此外,尝试撤消访问权限,如下所述:Why is Google Calendar API (oauth2) responding with 'Insufficient Permission'?

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

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

我错过了什么吗?

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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
);

在与服务电子邮件帐户共享日历后,这适用于我的授权。

答案 2 :(得分:0)

我认为如果您使用Google Calendar Quickstart for Ruby,我认为您应该删除指定路径中的凭据...我尝试它并且运行良好...您可以看到凭据放在何处

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

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

答案 3 :(得分:0)

首先改变

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

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

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

然后又跑了。

这对我有用!