橙讯开放平台基线
首页服务端API客户端API附录橙讯官网
首页服务端API客户端API附录橙讯官网
  1. 回调通知
  • 开发前准备
  • 组织自建应用对接
    • 获取访问凭证
      • 获取访问凭证
    • 单点登录
      • 概述
      • 应用单点登录
      • 管理员单点登录
    • 消息推送
      • 概述
      • 消息推送
      • 消息撤回
    • 通讯录同步
      • 概述
      • 获取通讯录
        • 获取全量通讯录
        • 获取增量通讯录
      • 回调通知
        • 回调通知说明
    • 机器人
      • 概述
      • 创建群
      • 更新群
      • 查询群信息
      • 解散群
      • 设置群公告
      • 查询机器人创建的群列表
      • 发送群消息
      • 给指定用户发送消息
    • 待办
      • 概述
      • 创建待办
      • 更新待办
      • 删除待办
      • 更新待办执行人
    • 待阅
      • 概述
      • 创建待阅
      • 更新待阅
      • 删除待阅
      • 更新待阅执行人
    • 工作台卡片
      • 概述
      • 添加应用卡片模板
      • 获取应用的卡片模板列表
      • 更新应用卡片模板
      • 删除应用卡片模板
      • 设置卡片组织级数据
      • 批量设置卡片数据(卡片数据不同)
      • 批量设置卡片数据(卡片数据相同)
    • 错误码
      • 错误码
  • 组织服务对接
    • 组织服务对接准备
    • 对接流程
      • 概述
      • 换取企业永久授权码
      • 获取访问凭证
      • 获取全量通讯录
      • 获取增量通讯录变更
      • 更新通讯录
    • 错误码
      • 错误码
  • 历史版本(不推荐)
    • 组织自建应用对接
      • 通讯录同步
        • 概述
        • 获取通讯录
          • 获取全量通讯录
          • 获取增量通讯录
        • 回调通知
          • 回调通知说明
      • 消息推送
        • 概述
        • 消息推送
  1. 回调通知

回调通知说明

接入平台通过回调到外部应用服务器来完成某些通知功能,比如主动告知通讯录有变化。

回调配置#

想要开启回调功能,需要管理员开启通讯录同步功能(开启该功能参考通讯录同步功能概述),并设置回调参数: URL和Key:
image.png

说明#

URL:对接的外部应用提供的公开可访问的回调服务地址 ,由开发者搭建(需要满足接口要求,参考回调API说明 ),用于接收通知消息或者事件。如果url是https协议,请确保服务证书是有效的,否则回调失败。
保存的时候橙讯服务器会给对应的应用服务器端发送“通讯录回调地址测试”请求,对方返回成功后才能保存。

回调协议#

提示
1.
所有接口使用HTTPS协议,POST方法、JSON数据格式、UTF8编码。所有请求都推送至系统事件接收URL,推送时如果response的http code不为200,会重发,共三次。建议第三方服务发生重启后,主动执行一次增量查询。
2.
回调地址格式为:POST URL?corpid=xxx&timestamp=xxx&nonce=xxx&signature=xxx,其中corpid,nonce,timestamp,signature为橙讯系统自动添加,URL为前面配置。corpid为组织ID,nonce为随机数,timestamp为请求时间戳,signature为按下面签名算法得出的签名值。
3.
签名算法和规则:signature采用 HMAC-SHA256算法,用十六进制表示。
4.
返回结果/参数说明,标明返回参数示例及说明。特别留意,所有接口返回包里都有err_code、err_msg。err_code是否为0判断是否调用成功(err_code意义请见全局错误码)。

签名计算#

1.
设所有发送或者接收到的数据为集合M(Body中的json属性,加上URL中的corpid, timestamp,nonce),将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串baseString。特别注意以下重要规则:
1.
参数名ASCII码从小到大排序(字典序)
2.
如果参数的值为空不参与签名
3.
参数名区分大小写
4.
验证签名时,传送的signature参数不参与签名,将生成的签名与该signature值作校验
5.
接口可能增加字段,验证签名时必须支持增加的扩展字段
2.
在baseString最后拼接上&key=keyvalue得到最后要被签名(finalString)的字符串。这里keyvalue在开通时设置。最后对finalString进行HMAC-SHA256运算,得到的用十六进制表示的签名值字符串为signature值
Signature Key由系统生成,可在应用授权信息中查看

示例#

请求URL为:URL?corpid=123&timestamp=1555305587&nonce=1556085361&signature=45818f4d3c52c0f96ab6241dbb9e4b03539681ec Body为:{"event_type":"ADDRESS_BOOK","version":100}

第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
baseString="corpid=123456&event_type=ADDRESS_BOOK&nonce=SXqHqgjEFe&timestamp=1608602744059&version=100";

第二步:拼API的key(开通时设置的),并计算
finalString=baseString+"&key=keyvalue";signature=Hex(hash_hmac("sha256", finalString, key));
//注:采用UTF-8,HMAC-SHA256签名方式对比该signature和URL中的signature值

API:通讯录回调地址测试#

请求 Body为:
{
  "event_type": "PING",
  "version": 0
}

API:通讯录变更通知#

{
  "event_type": "ADDRESS_BOOK", 
   "version": 5
}
请求参数说明:
参数说明
event_type通知类型:ADDRESS_BOOK:通讯录有变化
version当前通讯录版本号
修改于 2025-03-21 02:15:26
上一页
获取增量通讯录
下一页
概述
Built with