繁体   English   中英

在PHP中创建事件后如何检索Google Calendar事件ID

[英]How to retrieve Google Calendar event ID after creating event in PHP

我有一个PHP文件,该文件将根据从CRM中发布的数据在Google日历中成功创建一个事件,但是,我找不到任何有关如何检索刚刚创建的事件的ID并返回JSON数据字符串的文档。 。

这是我当前的PHP文件。

<?php

require_once __DIR__ . '/google-api-php-client/src/Google/autoload.php';

$summary = $_POST["summary"];
$location = $_POST["location"];
$description = $_POST["description"];
$startdatetime = $_POST["startdatetime"];
$enddatetime = $_POST["enddatetime"];



$client_email = 'xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com';
$private_key = file_get_contents('xxxxxx.p12');
$scopes = array('https://www.googleapis.com/auth/calendar');
$user_to_impersonate = 'xxxxxxx@xxxxxxxxxxx.com';
$credentials = new Google_Auth_AssertionCredentials(
    $client_email,
    $scopes,
    $private_key,
    'notasecret',                                 // Default P12 password
    'http://oauth.net/grant_type/jwt/1.0/bearer', // Default grant type
    $user_to_impersonate
);
$client = new Google_Client();
$client->setAssertionCredentials($credentials);
if ($client->getAuth()->isAccessTokenExpired()) {
  $client->getAuth()->refreshTokenWithAssertion();
}
$event = new Google_Service_Calendar_Event(array(
  'summary' => $summary,
  'location' => $location,
  'description' => $description,
  'start' => array(
    'dateTime' => $startdatetime,
    'timeZone' => 'America/Los_Angeles',
  ),
  'end' => array(
    'dateTime' => $enddatetime,
    'timeZone' => 'America/Los_Angeles',
  ),
  'reminders' => array(
    'useDefault' => FALSE,
  ),
));
$service = new Google_Service_Calendar($client);
$calendarId = 'southbay@unlikelylegendsmedia.com';
$event = $service->events->insert($calendarId, $event);

如果您知道相应的calendarID ,则可以使用Events:list

通过发送带有calendarId参数的HTTP请求,可以检索eventId 要求类似:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events

如果请求成功,则此方法可以返回带有单个一次性事件和重复事件实例的响应主体。

示例PHP代码:

$events = $service->events->listEvents('primary');

while(true) {
  foreach ($events->getItems() as $event) {
    echo $event->getSummary();
  }
  $pageToken = $events->getNextPageToken();
  if ($pageToken) {
    $optParams = array('pageToken' => $pageToken);
    $events = $service->events->listEvents('primary', $optParams);
  } else {
    break;
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM