G Suite帐户在Calendar API中缺少displayName参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了G Suite帐户在Calendar API中缺少displayName参数相关的知识,希望对你有一定的参考价值。

我正在创建一个应用程序,使用他们的API从Google日历中获取日历事件。但是,我无法获取G Suite帐户的creator.displayName参数。为了排除我的代码中的某些内容,我只是从calendar.google.com网站创建了一个日历活动,然后转到API资源管理器(https://developers.google.com/apis-explorer/#p/calendar/v3/calendar.events.list)查看该活动。

事实证明,G Suite用户没有displayName参数,但资源和标准Google日历用户都有。

对于G Suite资源帐户,我得到以下内容:

   {
   "kind": "calendar#event",
   "etag": ""123456789220000"",
   "id": "<unique-ID-here>",
   "status": "confirmed",
   "htmlLink": "https://www.google.com/calendar/event?eid=unique-eid-link-here",
   "created": "2018-02-27T13:00:07.000Z",
   "updated": "2018-02-27T13:00:07.160Z",
   "summary": "Event Name",
   "creator": {
    "email": "admin@gsuitedomain.com"
   },
   "organizer": {
    "email": "gsuitedomain.com_uniqueidentifier@group.calendar.google.com",
    "displayName": "A Resource Account",
    "self": true
   },
   "start": {
    "dateTime": "2018-02-27T05:52:00-08:00"
   },
   "end": {
    "dateTime": "2018-02-27T06:00:00-08:00"
   },
   "iCalUID": "unique-uid-here@google.com",
   "sequence": 0,
   "reminders": {
    "useDefault": true
   }

对于个人帐户,我得到:

   {
   "kind": "calendar#event",
   "etag": ""1234567890015265"",
   "id": "unique-id-here",
   "status": "confirmed",
   "htmlLink": "https://www.google.com/calendar/event?eid=unique-eid-here",
   "created": "2018-02-27T13:00:04.000Z",
   "updated": "2018-02-27T13:00:05.014Z",
   "summary": "Event Name 2",
   "creator": {
    "email": "personal-gmail@gmail.com",
    "displayName": "John Doe",
    "self": true
   },
   "organizer": {
    "email": "personal-gmail@gmail.com",
    "displayName": "John Doe",
    "self": true
   },
   "start": {
    "dateTime": "2018-02-27T08:00:00-05:00"
   },
   "end": {
    "dateTime": "2018-02-27T09:00:00-05:00"
   },
   "iCalUID": "unique-id-here@google.com",
   "sequence": 0,
   "reminders": {
    "useDefault": true
   }
  }

显示名称在组织者下显而易见的位置。但对于管理员或GSuite中的任何用户,我得到以下内容:

   {
   "kind": "calendar#event",
   "etag": ""123459678950000"",
   "id": "unique-id-here",
   "status": "confirmed",
   "htmlLink": "https://www.google.com/calendar/event?eid=unique-eid-here",
   "created": "2018-02-27T14:00:14.000Z",
   "updated": "2018-02-27T14:00:24.391Z",
   "summary": "Event Name 3",
   "creator": {
    "email": "admin@gsuitedomain.com",
    "self": true
   },
   "organizer": {
    "email": "admin@gsuitedomain.com",
    "self": true
   },
   "start": {
    "dateTime": "2018-02-27T07:30:00-08:00"
   },
   "end": {
    "dateTime": "2018-02-27T08:00:00-08:00"
   },
   "iCalUID": "unique-id-here@google.com",
   "sequence": 0,
   "reminders": {
    "useDefault": true
   }

我错过了什么吗?为什么G Suite用户默认不使用displayName参数?

答案

对于那些正在努力解决这个问题的人

个人用户身份信息与为该用户创建的Google+个人资料相关联。 Google+已针对G Suite域启用,但也必须为每个用户启用该服务。

设置G +配置文件后,displayName将可用。

以上是关于G Suite帐户在Calendar API中缺少displayName参数的主要内容,如果未能解决你的问题,请参考以下文章

Gmail API - 从 g-suite 服务帐户发送邮件时设置发件人名称

在 Google 日历 API 中开会

如何使用 Gmail API 在 nodejs 服务器中连接我的 G-Suite

适用于 G Suite 的 Android 管理 API

Laravel Mail - 无法将 G Suite 帐户用于 SMTP(已创建 2FA 和应用密码)

Google Calendar API - 禁止 - 服务帐户错误