Google calendar api 为什么显示名称未显示在日历事件与会者中?

Google calendar api 为什么显示名称未显示在日历事件与会者中?,google-calendar-api,Google Calendar Api,我正在使用以下代码成功检索日历事件与会者: require_once __DIR__ . '/vendor/autoload.php'; putenv("GOOGLE_APPLICATION_CREDENTIALS=" . __DIR__ . '/mt-service-account.json'); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->setApp

我正在使用以下代码成功检索日历事件与会者:

require_once __DIR__ . '/vendor/autoload.php';
putenv("GOOGLE_APPLICATION_CREDENTIALS=" .  __DIR__ . '/mt-service-account.json');

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setApplicationName("APP NAME");
$client->setSubject("<APPROPRIATE_USER_EMAIL>");
$client->setScopes([
    'https://www.googleapis.com/auth/calendar'
]);

$calendarService = new Google_Service_Calendar($client);

$optParams = array(
    'singleEvents' => true,
    'orderBy'      => 'startTime'
);
$events = $calendarService->events->listEvents('<APPROPRIATE_CALENDAR_ID>', $optParams);

foreach ($events->getItems() as $event) {
  print_r($event->getAttendees());
}
讨论中的与会者是活动创建者的联系人,创建活动时,联系人的姓名和电子邮件将显示在“类型帮助”字段中


更新NB事件不是通过API创建的。它们是通过谷歌日历(即在浏览器中)创建的。通过在“添加与会者”字段中键入与会者的姓名来添加与会者(Google type assist找到了联系人)。其目的是以编程方式(即使用API)检索由我们的G Suite日历用户创建的事件详细信息

我看不出您是如何创建有问题的事件的,但我的猜测是,在创建事件并添加与会者时,他们的显示名称没有作为可选参数插入

与会者[]。displayName字符串与会者的姓名(如果可用)。可选。可写

当通过谷歌日历网络视图发布活动时,您只需添加一个用户电子邮件地址。如果用户是Gmail账号,谷歌可以猜出显示名称。如果它不是一个Gmail帐户,那么谷歌无法知道你的用户名是什么,最终显示名为空

attendees": [
    {
     "email": "lme@gmail.com",
     "displayName": "Linda Lawton",
     "organizer": true,
     "self": true,
     "responseStatus": "accepted"
    },
    {
     "email": "ll@meAtWork.com",
     "responseStatus": "needsAction"
    }

@DalmTo事件不是通过API创建的。它是通过谷歌日历(即在浏览器中)创建的。通过在“添加与会者”表单中键入与会者的姓名添加了与会者(Google type assists找到了联系人)。我的目标是以编程方式(即使用API)检索由我们的G套件日历用户创建的事件详细信息。只有当它是gmail帐户并且google有某种方式知道用户名时,才通过web视图添加显示名称。如果用户组织者说用户在他们的谷歌联系人中,谷歌可能也能以这种方式抓取它,这也可能起作用。@DalmTo这似乎很奇怪,因为谷歌似乎确实有办法知道用户的名字。重现问题:1)在G套件“联系人”视图中创建一个非谷歌联系人(例如John Smith w/email)johnsmith@domain.com)2)在G套件日历web视图中,在日历上创建一个事件,并在“与会者”字段中,开始键入“John Smith”。你会看到Google将完成这个名字(这向我暗示Google知道用户的名字)我没有访问G套件的权限,你必须测试它,但基本上如果API没有返回这个值,因为它在用户添加时没有插入。G套件是新的,可能无法完全集成到谷歌的所有产品中,如calendar。@DalmTo,谢谢。这有点令人沮丧。我认为G套房并不是那么新。这只是对谷歌应用程序的更名,谷歌应用程序用于你的域名,谷歌应用程序用于工作,这两个应用程序从2006年就开始了。顺便说一句,我在Twitter上关注过你:-)4年后,我也遇到了同样的问题。你在Jordan发现了吗?
attendees": [
    {
     "email": "lme@gmail.com",
     "displayName": "Linda Lawton",
     "organizer": true,
     "self": true,
     "responseStatus": "accepted"
    },
    {
     "email": "ll@meAtWork.com",
     "responseStatus": "needsAction"
    }