PHP 获取 Google 日历事件列表“服务帐户”(服务器到服务器)不起作用

问题描述 投票:0回答:2

此代码(使用 Google PHP API 客户端https://github.com/googleapis/google-api-php-client)回答“未找到即将发生的事件。”,显然没有检索事件,因为至少有一个未来日历中的活动。

index.php

require_once __DIR__.'/vendor/autoload.php';

session_start();

putenv('GOOGLE_APPLICATION_CREDENTIALS=XXX.json');

$client = new Google\Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/calendar.events.readonly');

$calendarId = 'primary';
  $optParams = array(
    'maxResults' => 10,
    'orderBy' => 'startTime',
    'singleEvents' => TRUE,
    'timeMin' => date('c'),
  );
  
  $service = new Google_Service_Calendar($client);
  $results = $service->events->listEvents($calendarId, $optParams);

  if (count($results->getItems()) == 0) {
    print "No upcoming events found.\n";
  } else {
    print "Upcoming events:\n";
    foreach ($results->getItems() as $event) {
      $start = $event->start->dateTime;
      if (empty($start)) {
        $start = $event->start->date;
      }
      printf("%s (%s)\n", $event->getSummary(), $start);
    }
  }

我将 [email protected] 添加到可以访问我的日历活动详细信息的人员列表中,但没有任何变化。我仍在尝试检索 Google 日历事件列表,而不需要 OAuth(服务帐户服务器到服务器)。

php google-calendar-api google-api-php-client google-workspace service-accounts
2个回答
0
投票

确保您已配置域范围委派并将主题设置为您要模拟的域中的用户。

$client = new Google\Client();
$client->setAuthConfig(CREDENTIALS);
$client->setScopes(SCOPES);
$client->setSubject("[email protected]");

0
投票

我也遇到同样的情况,请问你解决了吗?

© www.soinside.com 2019 - 2024. All rights reserved.