我正在为预订应用程序进行Google日历集成,该应用程序允许管理员批准/拒绝预订。预订获得批准后,它需要在特定的Google日历中插入一个可跟踪所有预订的事件-为此,在阅读了我决定使用服务帐户并对其进行设置的文档后,便可以修改日历及其事件。
但是,在提交任何服务请求后,我收到一个错误,状态代码为500,并且没有进一步说明该过程中发生了什么问题。
我尝试调用其他方法,例如列出事件,插入新事件等,但是所有事件均以相同的方式失败。我已经仔细检查了JSON文件,该文件包含服务帐户凭据,执行操作所需的范围以及预先设置的服务帐户。用$ client初始化后检查$ service的内容,返回的信息包含有关允许使用服务帐户的特定Google日历的正确数据,这使我认为自动加载器和凭据设置正确。
session_start();
require_once('./XXX-1234/vendor/autoload.php');
$client = new Google_Client();
$application_creds = './XXX-1234/.json';
$credentials_file = file_exists($application_creds) ? $application_creds : false;
$client->setAuthConfig($credentials_file);
$client->setApplicationName('XXX-1234');
$client->addScope('https://www.googleapis.com/auth/calendar');
$client->addScope('https://www.googleapis.com/auth/calendar.readonly');
$client->addScope('https://www.googleapis.com/auth/calendar.events');
$client->addScope('https://www.googleapis.com/auth/calendar.events.readonly');
$service = new Google_Service_Calendar($client);
$calendarId = 'primary';
$event = new Google_Service_Calendar_Event(array(
'summary' => 'Test Event',
'start' => array(
'dateTime' => '2019-04-24T00:12:00+02:00',
'timeZone' => 'Europe/Budapest',
),
'end' => array(
'dateTime' => '2019-04-24T00:13:00+02:00',
'timeZone' => 'Europe/Budapest',
),
));
$event = $service->events->insert($calendarId, $event);
执行在最后一行失败,并显示500错误,而不是正确插入事件。问题是,这里到底是什么问题,我该如何更好地调试原因呢?