-
1. 后端处理服务器API
- 1.1 数据库结构
- 1.2 后端处理服务器HTTP 接口
- 1.3. 数据包
-
2. 后端处理服务器应用集成API
- 2.1 设置应用集成
- 2.2 API 格式和签名机制
- 2.3 API 定义
- 3. 客户端扩展机制
-
4. 会话机器人开发指南
- 4.1 机器人应用开发
API 格式和签名机制
- 2019-03-12 10:37:45
- Catouse
- 11877
- 最后编辑:孙浩 于 2020-03-03 11:58:55
- 分享链接
一、API 格式
⚠️ 注:自喧喧2.5.5版本后, 变更了应用集成 API 接口xxbserver.com/api.php,将应用集成 API 接口并入x.php,之前的api.php已弃用!
第三方应用在请求喧喧数据时所调用的 API 的请求地址格式为:
/x.php?m=$moduleName&f=$methodName$params&code=$code&token=$token
以上请求地址格式中的变量定义如下:
$moduleName :要调用的 API 所属模块名称(通常为 “im”),必须提供;
$methodName :要调用的 API 所属模块内的方法名称,如果缺省则为 index ;
$params :要调用的 API 方法参数,如果没有参数可以留空,如果所调用的 API 方法有参数则将参数名和参数值通过通用网址查询字符串的形式插入到 $params 所在位置,例如 gid=XXX ;
$code :应用代号,必须提供;
$token :调用 API 时的数字签名。
例如获取讨论组 gid 为 64da14c3-c07a-45af-9c61-4e638de4af26 中的用户数据请求地址为:
/x.php?m=im&f=getChatUsers&code=myAppCode&token=f5633c34c0c551a16c1d63bceb38d6a8
二、签名算法
API 请求地址中的数字签名 $token 应该在每次调用时根据应用集成密匙生成,具体算法为:
$token = md5(md5($query) + $key)
以上公式包含的变量定义如下:
$query :请求地址中查询字符串(? 之后的部分)不包含 &token=$token 的部分;
$key :应用密匙(必须为小写形式)。
例如:
// 查询参数 var $query = 'm=chat&f=getChatUsers&code=myAppCode'; // 应用密匙 var $key = '3cd0914d656e90ab181f1d52ff352cfe'; // 计算签名字符串 var $token = md5(md5('m=im&f=getChatUsers&code=myAppCode') + '3cd0914d656e90ab181f1d52ff352cfe'); // 这样 $token 的计算值为 'f5633c34c0c551a16c1d63bceb38d6a8'
微信公众号