编辑从谷歌服务帐户谷歌日历事件:403(Edit Google calendar events fr

2019-06-17 16:39发布

我想创建从服务帐户谷歌日历新事件。 我可以正确访问和打印的清单我的所有日​​历。 但是,当我想创建一个新的事件的响应是403禁止。

我的代码:

require_once 'src/Google_Client.php';
require_once 'src/contrib/Google_CalendarService.php';

session_start();

const CLIENT_ID = 'XXXXXXXXXX.apps.googleusercontent.com';
const SERVICE_ACCOUNT_NAME = 'XXXXXXXXXXXX@developer.gserviceaccount.com';

const KEY_FILE = 'google_src/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-privatekey.p12';

$client = new Google_Client();
$client->setApplicationName("APP_NAME");

if (isset($_SESSION['token'])) {
 $client->setAccessToken($_SESSION['token']);
}

$key = file_get_contents(KEY_FILE);
$client->setClientId(CLIENT_ID);
$client->setAssertionCredentials(new Google_AssertionCredentials(
  SERVICE_ACCOUNT_NAME,
  'https://www.google.com/calendar/feeds/MY_CALENDAR_ID/private/full/',
  $key)
);

$client->setClientId(CLIENT_ID);
$cal = new Google_CalendarService($client);
$event = new Google_Event();
$event->setSummary('Bon dia pel matí!');
$event->setLocation('Somewhere');
$start = new Google_EventDateTime();
$start->setDateTime('2012-08-06T10:00:00.000-07:00');
$event->setStart($start);
$end = new Google_EventDateTime();
$end->setDateTime('2012-09-06T10:25:00.000-07:00');
$event->setEnd($end);

$createdEvent = $cal->events->insert(CALENDAR_NAME, $event);

和服务器响应:

(403) Forbidden

有任何想法吗? 也许其他范围,或允许编辑事件(我不知道我在哪里可以配置这一点,我已经搜查,许诺)

当然,我的日历是一个公共日历。

任何帮助将受到欢迎:)

谢谢!

Answer 1:

我解决了它,这个问题是不是代码,它工作正常。

这个问题是分享我的日历。 东西,我不知道。

为了让编辑从服务帐户的日历事件,没有足够的与你在谷歌API控制台中完成所有的步骤,你必须从你的日历配置给予许可(日历配置 - >共享此日历)指定到谷歌的电子邮件帐户API控制台(的电子邮件地址)。

这可能是一个问题,如果它是一个商业帐户,那么你就会有联系帐户管理员。

这里显示的代码工作正常,所以我希望它可以帮助别人,只记得你必须使用475版本的谷歌API客户端。

你可以找到在此链接: http://google-api-php-client.googlecode.com/svn/trunk/src/



文章来源: Edit Google calendar events from Google service account: 403