API 鉴权
OpenAPI 基础路径为 /openapi/v1/。正式域名以开通参数为准,每次请求由客户服务端生成签名。
请求头
| Header | 说明 |
|---|---|
| X-API-Key | 已启用的客户 API Key |
| X-Timestamp | Unix 毫秒时间戳,允许偏差为 5 分钟 |
| X-Sign | md5(timestamp + api_key + api_secret) 的小写十六进制结果 |
| Content-Type | JSON 请求使用 application/json |
Python 签名示例
Python
import hashlib
import os
import time
api_key = os.environ["SMART_MESSAGES_API_KEY"]
api_secret = os.environ["SMART_MESSAGES_API_SECRET"]
timestamp = str(int(time.time() * 1000))
sign = hashlib.md5(
f"{timestamp}{api_key}{api_secret}".encode("utf-8")
).hexdigest()
headers = {
"X-API-Key": api_key,
"X-Timestamp": timestamp,
"X-Sign": sign,
"Content-Type": "application/json",
}凭据与 IP 白名单
请求必须使用启用凭据。配置 IP 白名单后,来源 IP 必须在允许范围。保持服务器时间同步;切换出口 IP 后先更新配置再联调。
与控制台登录的区别
控制台使用 JWT;OpenAPI 使用此处的签名头。不要用控制台 access token 替代 OpenAPI 签名。上传会话接口使用客户控制台 JWT,详见文件导入文档。