将活动添加到谷歌日历



我正在使用此代码将事件添加到我的日历中

$client = new Google_Client();
$client->setApplicationName("Calendar");
$scopes = array('https://www.googleapis.com/auth/prediction',    'https://www.googleapis.com/auth/calendar');
$auth_credentials = new Google_Auth_AssertionCredentials(SERVICE_ACCOUNT_NAME, $scopes,  $privateKey);
$client->setAssertionCredentials($auth_credentials);
$client->setClientId(CLIENT_ID);
$cal = new Google_Service_Calendar($client);
 try {  
 $event = new Google_Service_Calendar_Event();  
 $event->setSummary('Halloween');
 $event->setLocation('The Neighbourhood');
 $start = new Google_Service_Calendar_EventDateTime();
 $start->setDateTime('2014-01-09T10:00:00.000-05:00');
 $event->setStart($start);
 $end = new Google_Service_Calendar_EventDateTime();
 $end->setDateTime('2014-01-10T10:25:00.000-05:00');
 $event->setEnd($end);
 $createdEvent = $cal->events->insert('primary', $event);   
 echo $createdEvent->getId()."nn"; 
    }
catch (Exception $ex)
{
  die($ex->getMessage());
}

我得到了事件 ID,它被打印出来,但是当我在浏览器中查看我的日历时 - 绝对没有。

我做错了什么?

您需要将日历分享给自己。

这适用于新的Google_Client API。

$scope = new Google_Service_Calendar_AclRuleScope();
$scope->setType('user');
$scope->setValue( 'Your Email Goes Here' );
$rule = new Google_Service_Calendar_AclRule();
$rule->setRole( 'owner' );
$rule->setScope( $scope );
$result = $service->acl->insert('primary', $rule);

参考:Google 日历 API v3 - 不创建事件(服务器到服务器身份验证)

为什么要添加代码来与自己共享日历?Google_Service_Calendar_AclRuleScope类和类Google_Service_Calendar_AclRule无法在任何地方找到或下载。

您只需要将服务的电子邮件地址:45792..........@developer.gserviceaccount.com 添加到所有者的日历共享设置中,该地址可在 https://console.cloud.google.com/上应用程序的"凭据"部分找到。

相关内容

  • 没有找到相关文章

最新更新