详情

首页手游攻略 Google Meet:自动化会议空间与记录 - Openclaw Skills

Google Meet:自动化会议空间与记录 - Openclaw Skills

佚名 2026-08-07 13:00:01

什么是 Google Meet?

此技能为 Google Meet API 提供了强大的接口,利用托管 OAuth 网关简化身份验证过程。通过利用 Openclaw Skills,开发人员可以绕过手动令牌管理的复杂性,直接与 Google 的会议基础设施进行交互。该技能允许通过安全代理创建持久的会议空间、检索详细的会议记录并管理参与者会话。

无论您是在构建自动调度工具还是内部合规性监控器,此集成都能确保您的应用程序与 Google Meet 无缝交互。通过 Openclaw Skills 集中进行身份验证,您可以专注于构建功能,而不是处理敏感的凭据刷新。

下载入口:https://github.com/openclaw/skills/tree/main/skills/byungkyu/google-meet

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install google-meet

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 <project>/skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 google-meet。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

Google Meet 应用场景

  • 为日历事件或客户支持工单自动生成唯一的会议链接。
  • 以编程方式检索并存档会议转录和录音,用于知识管理。
  • 监控会议出席情况和参与者时长,用于计费或绩效跟踪。
  • 根据特定触发器或用户角色更新会议访问权限(公开、信任、受限)。
Google Meet 工作原理
  1. 开发人员配置 Maton API 密钥,作为 Openclaw Skills 的主要凭据。
  2. 通过 Maton 控制平面建立一次性 OAuth 连接,以授权 Google Meet 应用程序。
  3. API 请求被定向到网关 URL,该 URL 镜像了原生 Google Meet API 的结构。
  4. 网关在将请求转发给 Google 之前,会自动在请求头中注入有效的 OAuth 令牌。
  5. 关于空间、参与者或录音的实时响应以 JSON 格式返回给客户端。

Google Meet 配置指南

要开始使用此技能,请遵循以下安装和配置步骤:

  1. 从 maton.ai 的设置仪表板获取您的 API 密钥。
  2. 设置环境变量:
export MATON_API_KEY="YOUR_API_KEY"
  1. 为 Google Meet 初始化 OAuth 连接:
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'google-meet'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
  1. 访问返回的 URL 以完成 Google 身份验证流程。

Google Meet 数据架构与分类体系

该技能围绕 Google Meet API 提供的三种主要资源类型组织数据:

资源 描述 主要标识符
空间 (Spaces) 具有特定访问配置的持久会议室 name, meetingUri, meetingCode
会议记录 (Conference Records) 特定会议实例的历史数据 conferenceRecordId, startTime, endTime
参与者 (Participants) 个人用户及其特定会话 participantId, participantSessionId
媒体 (Media) 相关的录音和转录 recordingId, transcriptId
name: google-meet
description: |
  Google Meet API integration with managed OAuth. Create meeting spaces, list conference records, and manage meeting participants. Use this skill when users want to interact with Google Meet. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).
compatibility: Requires network access and valid Maton API key
metadata:
  author: maton
  version: "1.0"
  clawdbot:
    emoji: ??
    requires:
      env:
        - MATON_API_KEY

Google Meet

Access the Google Meet API with managed OAuth authentication. Create and manage meeting spaces, list conference records, and retrieve participant information.

Quick Start

# Create a meeting space
python <<'EOF'
import urllib.request, os, json
data = json.dumps({}).encode()
req = urllib.request.Request('https://gateway.maton.ai/google-meet/v2/spaces', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Base URL

https://gateway.maton.ai/google-meet/{native-api-path}

Replace {native-api-path} with the actual Google Meet API endpoint path. The gateway proxies requests to meet.googleapis.com and automatically injects your OAuth token.

Authentication

All requests require the Maton API key in the Authorization header:

Authorization: Bearer $MATON_API_KEY

Environment Variable: Set your API key as MATON_API_KEY:

export MATON_API_KEY="YOUR_API_KEY"

Getting Your API Key

  1. Sign in or create an account at maton.ai
  2. Go to maton.ai/settings
  3. Copy your API key

Connection Management

Manage your Google OAuth connections at https://ctrl.maton.ai.

List Connections

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=google-meet&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Create Connection

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'google-meet'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Get Connection

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

{
  "connection": {
    "connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
    "status": "ACTIVE",
    "creation_time": "2025-12-08T07:20:53.488460Z",
    "last_updated_time": "2026-01-31T20:03:32.593153Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "google-meet",
    "metadata": {}
  }
}

Open the returned url in a browser to complete OAuth authorization.

Delete Connection

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Specifying Connection

If you have multiple Google Meet connections, specify which one to use with the Maton-Connection header:

python <<'EOF'
import urllib.request, os, json
data = json.dumps({}).encode()
req = urllib.request.Request('https://gateway.maton.ai/google-meet/v2/spaces', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

If omitted, the gateway uses the default (oldest) active connection.

API Reference

Spaces

Create Space

POST /google-meet/v2/spaces
Content-Type: application/json

{}

Response:

{
  "name": "spaces/abc123",
  "meetingUri": "https://meet.google.com/abc-defg-hij",
  "meetingCode": "abc-defg-hij",
  "config": {
    "accessType": "OPEN",
    "entryPointAccess": "ALL"
  }
}

Get Space

GET /google-meet/v2/spaces/{spaceId}

Update Space

PATCH /google-meet/v2/spaces/{spaceId}
Content-Type: application/json

{
  "config": {
    "accessType": "TRUSTED"
  }
}

End Active Call

POST /google-meet/v2/spaces/{spaceId}:endActiveConference

Conference Records

List Conference Records

GET /google-meet/v2/conferenceRecords

With filter:

GET /google-meet/v2/conferenceRecords?filter=space.name="spaces/abc123"

Get Conference Record

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}

Participants

List Participants

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/participants

Get Participant

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/participants/{participantId}

Participant Sessions

List Participant Sessions

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/participants/{participantId}/participantSessions

Recordings

List Recordings

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/recordings

Get Recording

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/recordings/{recordingId}

Transcripts

List Transcripts

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/transcripts

Get Transcript

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/transcripts/{transcriptId}

List Transcript Entries

GET /google-meet/v2/conferenceRecords/{conferenceRecordId}/transcripts/{transcriptId}/entries

Code Examples

JavaScript

// Create a meeting space
const response = await fetch(
  'https://gateway.maton.ai/google-meet/v2/spaces',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    },
    body: JSON.stringify({})
  }
);

const space = await response.json();
console.log(`Meeting URL: ${space.meetingUri}`);

Python

import os
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'
}

# Create a meeting space
response = requests.post(
    'https://gateway.maton.ai/google-meet/v2/spaces',
    headers=headers,
    json={}
)
space = response.json()
print(f"Meeting URL: {space['meetingUri']}")

Notes

  • Spaces are persistent meeting rooms that can be reused
  • Conference records are created when a meeting starts and track meeting history
  • Access types: OPEN (anyone with link), TRUSTED (organization members only), RESTRICTED (invited only)
  • Recordings and transcripts require Google Workspace with recording enabled
  • IMPORTANT: When using curl commands, use curl -g when URLs contain brackets to disable glob parsing
  • IMPORTANT: When piping curl output to jq or other commands, environment variables like $MATON_API_KEY may not expand correctly in some shell environments. You may get "Invalid API key" errors when piping.

Error Handling

Status Meaning
400 Missing Google Meet connection
401 Invalid or missing Maton API key
429 Rate limited (10 req/sec per account)
4xx/5xx Passthrough error from Google Meet API

Troubleshooting: Invalid API Key

When you receive a "Invalid API key" error, ALWAYS follow these steps before concluding there is an issue:

  1. Check that the MATON_API_KEY environment variable is set:
echo $MATON_API_KEY
  1. Verify the API key is valid by listing connections:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Troubleshooting: Invalid App Name

  1. Ensure your URL path starts with google-meet. For example:
  • Correct: https://gateway.maton.ai/google-meet/v2/spaces
  • Incorrect: https://gateway.maton.ai/meet/v2/spaces

Resources

点击查看更多
推荐专题
热门阅读