寻求Google Chat API的REST请求(含认证)PHP开发文档与示例
使用PHP通过REST请求调用Google Chat API(含认证)
认证流程(复用你熟悉的Google OAuth2逻辑)
既然你已经开发过Drive、Sheets等Google API,OAuth2认证流程完全通用,针对Chat API只需注意权限范围:
- 机器人身份调用:用
https://www.googleapis.com/auth/chat.bot - 模拟域内用户发送消息:用
https://www.googleapis.com/auth/chat.messages
服务账号获取Token示例(PHP)
如果你用服务账号认证,代码和其他API一致:
<?php require __DIR__ . '/vendor/autoload.php'; // 确保已安装google/apiclient $client = new Google\Client(); $client->setAuthConfig('service-account-key.json'); // 你的服务账号密钥文件 $client->addScope('https://www.googleapis.com/auth/chat.messages'); // 可选:模拟域内特定用户发送,需服务账号有域委托权限 $client->setSubject('john@your-domain.com'); $accessToken = $client->fetchAccessTokenWithAssertion()['access_token']; ?>
核心REST接口调用示例
Google Chat API的REST端点完全遵循标准HTTP+JSON格式,官方的Python示例本质也是封装这些请求,直接参考官方REST文档的参数结构即可。
发送消息到Chat空间
请求端点:POST https://chat.googleapis.com/v1/spaces/{SPACE_ID}/messages
请求头:
Authorization: Bearer {你的Access Token}Content-Type: application/json
请求体:
{ "text": "这是PHP REST请求发送的测试消息" }
PHP cURL实现代码
<?php $spaceId = 'spaces/AAAA0123456'; // 替换为你的Chat空间ID(从空间URL获取) $accessToken = 'your-access-token-here'; $url = "https://chat.googleapis.com/v1/$spaceId/messages"; $payload = json_encode(['text' => 'PHP REST 测试消息']); $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer $accessToken", "Content-Type: application/json" ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // 处理响应 if ($httpCode === 200) { $message = json_decode($response, true); echo "消息发送成功,ID:{$message['name']}"; } else { echo "请求失败,状态码:$httpCode,响应:$response"; } ?>
REST接口方法与参数参考
所有Chat API的REST操作都可以参考官方的REST参考文档,核心操作包括:
- 空间管理:
- 列空间:
GET /v1/spaces,支持分页参数pageSize、pageToken - 获取空间详情:
GET /v1/spaces/{SPACE_ID}
- 列空间:
- 消息管理:
- 发送消息:
POST /v1/spaces/{SPACE_ID}/messages,支持text、cardsV2(富文本卡片)等字段 - 获取消息:
GET /v1/spaces/{SPACE_ID}/messages/{MESSAGE_ID} - 删除消息:
DELETE /v1/spaces/{SPACE_ID}/messages/{MESSAGE_ID}
- 发送消息:
- 成员管理:
- 列空间成员:
GET /v1/spaces/{SPACE_ID}/members
- 列空间成员:
参数和请求体结构和Python示例完全一致——毕竟Python SDK只是把这些JSON结构封装成了对象,直接照搬即可。比如发送富文本卡片,请求体里的cardsV2字段结构和Python代码里的卡片定义完全相同。
关键注意事项
- 机器人身份调用时,需在Google Chat管理后台配置机器人,权限用
chat.bot,且机器人必须加入目标空间 - 空间ID可以从Chat空间的URL中提取(格式为
spaces/xxxxxx) - 服务账号调用时,必须先将服务账号邮箱添加为目标Chat空间的成员,否则会返回权限错误
内容的提问来源于stack exchange,提问作者Datadimension
相关产品推荐
相关产品推荐

