You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 12:47:56