2012-08-08 93 views
5

我想从服务帐户在Google日历中创建新活动。 我可以正确访问并打印列出我所有的日历。 但是当我想创建一个新事件时,响应是403 Forbidden。从Google服务帐户编辑Google日历活动: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 = '[email protected]'; 

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 

任何想法?也许其他范围,或允许编辑事件(我不知道我可以配置这个,我已经搜索它,承诺)

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

任何帮助将受到欢迎:)

谢谢!

+0

也许它是被禁止的原因是什么? – Peon 2012-08-08 11:04:06

+0

也许,但我不知道是否有某个地方我可以编辑活动。在日历配置中,我没有看到任何内容,并且我激活了日历API。我没有问题列出caendars和事件。只能编辑和创建。但是,真的,我花了很多时间来搜索这个选项,并且没有什么可以做的:S 谢谢 – eMarine 2012-08-08 11:06:23

回答

12

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

问题是共享我的日历。我不知道的东西。

要允许从服务帐户编辑您的日历活动,您无法在Google Api控制台中执行所有步骤,您必须将日历配置(日历配置 - >共享此日历)的权限授予电子邮件帐户指定到Google Api控制台(电子邮件地址)。

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

此处显示的代码工作正常,所以我希望它可以帮助别人,只记得您必须使用475版本的Google Api Client。

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

+0

这对我有用。我刚刚让我们的帐户管理员与我的服务帐户的电子邮件地址共享日历。谢谢! – 2012-11-05 19:35:14

+0

谢谢,谢谢,谢谢!这就是我一直在寻找的! – 2012-12-22 18:58:51

+0

我正在寻找解决方案几个小时!谢谢你的回答。 – stil 2013-04-07 21:37:44

相关问题