首页
看点啥
插画图片
首页 科技看点 Google Meet:自动化会议空间与记录 - Openclaw Skills

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

2026-08-15 0

什么是 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/ 工作区 /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

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:

Resources

喜欢(0)

上一篇

手把手教你基于腾讯云向量数据库和大模型构建企业级 RAG 应用

手把手教你基于腾讯云向量数据库和大模型构建企业级 RAG 应用

下一篇

七界梦谭是款什么游戏 七界梦谭游戏介绍

七界梦谭是款什么游戏 七界梦谭游戏介绍
猜你喜欢