技术求助:如何通过Rest API使用Circuit Bot在Circuit会话中发布消息
使用Circuit Bot REST API在会话中发送消息的完整指南
我之前帮不少开发者处理过Circuit Bot的API调用问题,下面给你一步步拆解操作流程,还有实用的代码示例,帮你快速实现消息发送功能:
一、前置准备工作
在开始调用API之前,你需要先搞定这几个关键信息:
- Bot身份凭证:在Circuit开发者控制台创建Bot后,获取到的
client_id和client_secret - 目标会话ID:可以通过两种方式获取:
- 打开Circuit网页版的目标会话,从URL的
convId参数里提取(比如https://circuit.com/#/conversation/abc123...里的abc123...就是会话ID) - 调用Circuit的
GET /conversationsAPI列出Bot有权访问的所有会话,从中筛选目标ID
- 打开Circuit网页版的目标会话,从URL的
二、获取Bot的访问令牌
Circuit Bot使用OAuth2的Client Credentials模式获取访问令牌,这是调用所有API的前提:
请求详情
- 请求方法:
POST - 请求端点:
https://circuit.com/oauth/token - 请求头:
Content-Type: application/x-www-form-urlencoded - 请求参数(表单格式):
grant_type=client_credentialsclient_id=你的Bot客户端IDclient_secret=你的Bot客户端密钥
curl示例
curl -X POST https://circuit.com/oauth/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
返回结果里的access_token就是你需要的令牌,注意它有过期时间(通常是3600秒),到期后需要重新获取。
三、发送消息到指定会话
拿到令牌后,就可以调用消息发送API了:
请求详情
- 请求方法:
POST - 请求端点:
https://circuit.com/rest/v2/conversations/{CONVERSATION_ID}/messages - 请求头:
Authorization: Bearer {ACCESS_TOKEN}Content-Type: application/json
- 请求体(JSON格式):
{ "text": "这是Circuit Bot通过API发送的测试消息", "attachments": [] // 可选,比如添加文件、链接等附件,格式参考Circuit API文档 }
Python示例(使用requests库)
import requests # 替换成你的实际信息 ACCESS_TOKEN = "你的访问令牌" CONVERSATION_ID = "目标会话ID" MESSAGE_TEXT = "Hello from Circuit Bot API!" url = f"https://circuit.com/rest/v2/conversations/{CONVERSATION_ID}/messages" headers = { "Authorization": f"Bearer {ACCESS_TOKEN}", "Content-Type": "application/json" } payload = { "text": MESSAGE_TEXT } response = requests.post(url, json=payload, headers=headers) if response.status_code == 201: print("消息发送成功!") else: print(f"发送失败,错误码:{response.status_code},详情:{response.text}")
四、常见问题排查
- 权限错误(403):检查Bot是否已经被添加到目标会话中,只有Bot在会话内才能发送消息
- 令牌无效(401):确认令牌是否过期,或者获取令牌时的client_id/client_secret是否正确
- 会话ID错误(404):检查会话ID是否拼写正确,或者Bot是否有权限访问该会话
内容的提问来源于stack exchange,提问作者Kamal Garg
相关产品推荐
相关产品推荐

