如何使用谷歌日历 api 创建一个新的谷歌会议

Vis*_*han 4 api google-chrome google-calendar-api reactjs

我需要实现一个 javascript 项目,该项目根据登录的用户创建一个新的 google meet,并将事件添加到日历并获取 google meet 的 url。如何在 JS 中使用 Google Calendar API 创建新的 google meet。

Bri*_*ney 11

如果您不使用节点库,则请求axios如下。我没有从上面的答案中意识到conferenceDataVersion这是一个查询参数。

let event = {
    summary: "some text",
    location: "some text",
    description: "some text",
    start: {
      dateTime: start,
      timeZone: timeZone,
    },
    end: {
      dateTime: end,
      timeZone: timeZone,
    },
    recurrence: [],
    attendees: [
      { email: 'johndoe@whatever.com' }, 

    ],
    reminders: {
      useDefault: true,
    },
    conferenceData: {
      createRequest: {
        conferenceSolutionKey: {
          type: 'hangoutsMeet',
        },
        requestId: 'somerequestid',
      },
    },
  };
  
const createEventRequest = await axios({
    url: `https://www.googleapis.com/calendar/v3/calendars/${calendarId}/events?conferenceDataVersion=1`,
    method: 'POST',
    headers: {
      Authorization: `Bearer ${accessToken}`,
    },
    data: event,
  });
Run Code Online (Sandbox Code Playgroud)


Raf*_*rmo 9

回答:

conferenceData.createRequest创建 Calendar.Events: 插入请求以将 Meet 链接添加到日历事件时,您需要使用Events 资源的参数。

更多信息:

根据Events: insertEvent 资源 reperesentation的文档:

conferenceDataVersion integer

API客户端支持的会议数据版本号。版本 0 假定不支持会议数据并忽略事件正文中的会议数据。版本 1 支持复制 ConferenceData 以及使用会议数据的 createRequest 字段创建新会议。默认值为 0。可接受的值为0to 1,包括在内。


conferenceData.createRequest nested object

生成新会议并将其附加到事件的请求。数据是异步生成的。要查看数据是否存在,请检查该status字段。

任一conferenceSolution和至少一个entryPoint,或createRequest是必需的。


conferenceData.createRequest.conferenceSolutionKey.type string

会议解决方案类型。

如果客户端遇到不熟悉或空的类型,它应该仍然能够显示入口点。但是,它应该禁止修改。

可能的值为:


conferenceData.createRequest.requestId string

客户端为此请求生成的唯一 ID。客户端应为每个新请求重新生成此 ID。如果提供的 ID 与前一个请求相同,则该请求将被忽略。

有了这些信息,我们可以生成一个带有 Meet 链接的日历活动创建请求作为会议解决方案。

示例请求:

gapi.client.calendar.events.insert({
  "calendarId": "primary",
  "conferenceDataVersion": 1,
  "resource": {
    "end": {
      "date": "2020-10-24"
    },
    "start": {
      "date": "2020-10-23"
    },
    "conferenceData": {
      "createRequest": {
        "conferenceSolutionKey": {
          "type": "hangoutsMeet"
        },
        "requestId": "some-random-string"
      }
    },
    "summary": "titles are cool"
  }
});
Run Code Online (Sandbox Code Playgroud)

注意:为了生成 Meet 链接,您必须设置conferenceData.createRequest.requestId任何随机字符串。对于您希望创建的每个新会面链接,您必须在请求中使用不同的字符串

我希望这对你有帮助!

参考: