讲师中心 微信公众号
AI工具推荐 视频效率加速

自动创建 Google Meet

雨雪同学_4513

雨雪同学_4513

发布时间:2025-01-15 20:42:10

|

715人浏览过

|

来源于php中文网

原创

自动创建 google meet

利用 Google Calendar API 和服务帐号自动化创建 Google Meet 会议

本文将指导您如何使用 Google Calendar API 创建 Google 日历活动,并自动生成 Google Meet 会议链接。我们将使用服务帐号进行身份验证,从而代表您的 Google Workspace 域用户创建活动。

先决条件

开始之前,请确保您已完成以下准备工作:

  • 一个已启用 Google Calendar API 的 Google Cloud 项目。
  • 一个已创建的 服务帐号,并已下载其 JSON 密钥文件。
  • 已为 服务帐号启用域范围授权。
  • 已访问您的 Google 管理控制台 并授予必要的权限。
  • 具备 Node.js 基础知识以及 API 请求经验。

自动化创建 Google Meet 的步骤

第 1 步:配置 Google Cloud 项目

  1. 访问 Google Cloud Console。
  2. 创建一个新项目或选择一个现有项目。
  3. 启用 Google 日历 API:在侧边栏中搜索“日历 API”,并为您的项目启用它。
  4. 创建 服务帐号:在“IAM 和管理”部分,创建一个新的服务帐号,并下载其 JSON 密钥 文件。

第 2 步:启用域范围委托

  1. 进入 Google 管理控制台 (admin.google.com)。
  2. 导航至 安全性 → API 控制 → 管理域范围委托。
  3. 为服务帐号添加新的 客户端 ID:在您的 Google Cloud Console 中找到服务帐号的 客户端 ID。
  4. 添加服务帐号的 OAuth 范围,用于访问 Google 日历:https://www.googleapis.com/auth/calendar
  5. 授权服务帐号模拟您域中用户的权限。

第 3 步:安装必要的软件包

您需要一些 Node.js 包来与 Google API 交互并处理 JWT 签名:

npm install google-auth-library jsonwebtoken node-fetch

第 4 步:生成用于身份验证的 JWT 令牌

接下来,我们将编写一个 Node.js 脚本生成 JWT(JSON Web Token)以验证服务帐号。

Web Accessibility (WCAG 2 AA))
Web Accessibility (WCAG 2 AA))

将 WCAG 2 AA 无障碍标准应用于设计系统、UI 组件和网页——通过可运行的验证器进行对比度计算,采用设计 token 模式使颜色天生可访问,设定排版和焦点状态规则,并提供语义检查清单。适用于构建或审查 UI。

下载
const fs = require('fs');
const jwt = require('jsonwebtoken');

// 服务帐号 JSON 文件路径
const service_account_key_file = '/path/to/your/service-account-key.json';

// API所需的范围
const scopes = ['https://www.googleapis.com/auth/calendar']; // 完整日历访问权限
const audience = 'https://oauth2.googleapis.com/token';

async function generateJWT() {
    try {
        // 读取并解析服务帐号凭据
        const serviceAccount = JSON.parse(fs.readFileSync(service_account_key_file, 'utf8'));

        // JWT 载荷
        const jwtPayload = {
            iss: serviceAccount.client_email,       // 发行者:服务帐号邮箱
            sub: 'user@example.com',                // 主题:要访问其日历的用户的邮箱
            aud: audience,                          // 受众:Google 令牌 URL
            scope: scopes.join(' '),                // 范围:用空格分隔的范围列表
            iat: Math.floor(Date.now() / 1000),     // 发行时间:当前时间(秒)
            exp: Math.floor(Date.now() / 1000) + 3600 // 过期时间:一小时后
        };

        // 使用服务帐号的私钥签名 JWT
        const signedJWT = jwt.sign(jwtPayload, serviceAccount.private_key, { algorithm: 'RS256' });

        console.log('生成的 JWT:', signedJWT);
        return signedJWT;
    } catch (error) {
        console.error('生成 JWT 发生错误:', error);
        return null;
    }
}

第 5 步:使用 JWT 交换 OAuth 2.0 令牌

使用 JWT 从 Google 的 OAuth 2.0 令牌端点获取 OAuth 2.0 令牌:

const fetch = require('node-fetch');

async function getAccessToken(signedJWT) {
    const response = await fetch('https://oauth2.googleapis.com/token', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: new URLSearchParams({
            'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer',
            'assertion': signedJWT
        })
    });
    const data = await response.json();
    return data.access_token;
}

第 6 步:使用 Google Meet 链接创建 Google 日历活动

使用访问令牌,创建包含 Google Meet 链接的 Google 日历活动:

async function createEvent(accessToken) {
    const eventData = {
        summary: '团队会议',
        description: '讨论项目更新',
        start: {
            dateTime: '2025-01-15T10:00:00Z'
        },
        end: {
            dateTime: '2025-01-15T11:00:00Z'
        },
        attendees: [
            { email: 'attendee1@gmail.com' },
            { email: 'attendee2@gmail.com' }
        ],
        conferenceData: {
            createRequest: {
                conferenceSolutionKey: { type: 'hangoutsMeet' },
                requestId: 'unique-request-id'
            }
        }
    };

    const response = await fetch('https://www.googleapis.com/calendar/v3/calendars/primary/events?conferenceDataVersion=1', {
        method: 'POST',
        headers: {
            'Authorization': `Bearer ${accessToken}`,
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(eventData),
    });

    const event = await response.json();
    console.log('已创建事件:', event);
}

第 7 步:运行完整流程

组合所有部分并运行脚本以自动创建 Google Meet 活动:

(async () => {
    const signedJWT = await generateJWT();
    if (signedJWT) {
        const accessToken = await getAccessToken(signedJWT);
        await createEvent(accessToken);
    }
})();

结论

通过以上步骤,您可以使用服务帐号和域范围授权自动创建包含 Google Meet 链接的 Google 日历活动。此方法非常适合在 Google Workspace 域中自动安排会议。 通过启用域范围委托并配置服务帐号来模拟用户,您可以以编程方式访问和管理 Google 日历事件,这对于企业环境非常有用。 祝您编码愉快!✨

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2275

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3662

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1216

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

4239

2025.09.10

java中calendar类的用法
java中calendar类的用法

Java Video类是JavaFX库中的一个类,用于创建和操作视频对象。它提供了方法来加载、播放、暂停、停止和控制视频的音量、速度和循环等属性。想了解更多Java中类的相关内容,可以阅读本专题下面的文章。

1975

2024.02.29

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

14966

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

1745

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

4177

2023.12.21

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 7.6万人学习

DBeaver AI数据隐私指南
DBeaver AI数据隐私指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn