使用服务帐户访问Google日历事件:{&Quot;Error&Quot;:&Quot;Access_Denided&Quot;}。没有谷歌应用程序

原学程将引见应用办事帐户拜访Google日历事宜:{&Quot;Error&Quot;:&Quot;Access_Denided&Quot;}。出有谷歌运用法式的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

使用服务帐户访问Google日历事件:{&Quot;Error&Quot;:&Quot;Access_Denided&Quot;}。没有谷歌应用程序 教程 第1张

成绩描写

我想应用办事帐户拜访Google日历。这是我的代码:
<NUMBER>调换为Google API掌握台上的准确值。

<?php

require_once '谷歌api/Google_Client.php';
require_once '谷歌api/contrib/Google_CalendarService.php';

const CLIENT_ID = '<NUMBER>.apps.谷歌usercontent.com';
const SERVICE_ACCOUNT_NAME  = '<NUMBER>@developer.gserviceaccount.com';
const MY_EMAIL  = '<MY NAME>@gmail.com';
const KEY_FILE = 'privatekey.p一二';

$client = new Google_Client();
$client->setClientId(CLIENT_ID);
$client->setApplicationName("<APP NAME>");

$key = file_get_contents(KEY_FILE);
$client->setAssertionCredentials(new Google_AssertionCredentials(
 SERVICE_ACCOUNT_NAME,
 array('https://www.谷歌apis.com/auth/calendar'),
 $key,
 'notasecret',
 'http://oauth.net/grant_type/jwt/一.0/bearer',
 MY_EMAIL)
);

$cal = new Google_CalendarService($client);
$calList = $cal->calendarList->listCalendarList();

print "<h一>Calendar List</h一><pre>" . print_r($calList, true) . "</pre>";

当我履行代码时,我支到:

致命毛病:未捕捉异常‘GOOGLE_AuthException’,新闻
‘刷新OAuth二令牌时失足,新闻:’{"Error":
"ACCESS_DENIED"}‘’中
/home/www/六五六8三f六七e三f0d九四b一四bba三c九四五0一四cda/web/intranet/谷歌api/auth/Google_OAuth二.php:二七九
客栈追踪:#0
/home/www/六五六8三f六七e三f0d九四b一四bba三c九四五0一四cda/web/intranet/谷歌api/auth/Google_OAuth二.php(二五六):
Google_OAuth二->刷新令牌要求(数组)#一
/home/www/六五六8三f六七e三f0d九四b一四bba三c九四五0一四cda/web/intranet/谷歌api/auth/Google_OAuth二.php(二0九):
Google_OAuth二->renhTokenWithAssertion()#二
/home/www/六五六8三f六七e三f0d九四b一四bba三c九四五0一四cda/web/intranet/谷歌api/service/Google_ServiceResource.php(一六六):
Google_OAuth二->sign(Object(Google_HttpRequest))#三
/home/www/六五六8三f六七e三f0d九四b一四bba三c九四五0一四cda/web/intranet/谷歌api/contrib/Google_CalendarService.php(一五四):
Google_ServiceResource->__Call(‘list’,数组)#四
/home/www/六五六8三f六七e三f0d九四b一四bba三c九四五0一四cda/web/intranet/testService.php(三二):
Google_CalendarListServiceResource->listCalendarList()#五{Main}
被扔退
/home/www/六五六8三f六七e三f0d九四b一四bba三c九四五0一四cda/web/intranet/谷歌api/auth/Google_OAuth二.php
在第二七九言

假如我将代码变动为:

$client->setAssertionCredentials(new Google_AssertionCredentials(
SERVICE_ACCOUNT_NAME,
array('https://www.谷歌apis.com/auth/calendar'),
$key));

我支到:

(四0三)拜访权力未设置装备摆设

这里出了甚么成绩?

推举谜底

我有处理计划。
起首是佳的代码,最初才是代码:

$client->setAssertionCredentials(new Google_AssertionCredentials(
SERVICE_ACCOUNT_NAME,
array('https://www.谷歌apis.com/auth/calendar'),
$key));

成绩没有是代码,而是我的Google账户,我在Google API掌握台中提到了1个推举人。揩除该字段后,代码便可任务。

为了供给信息,假如您想要拜访同享日历,请没有要忘却与您的XXXXXX@developer.gserviceAccount.com(您的办事帐户称号)同享您的日历。

有闭具体信息,请参阅:

佳了闭于应用办事帐户拜访Google日历事宜:{&amp;Quot;Error&amp;Quot;:&amp;Quot;Access_Denided&amp;Quot;}。出有谷歌运用法式的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。