
# C3 智能助手平台接口鉴权方式
#### 场景描述
智能助手平台提供接口给内部系统或第三方接入时，需要先调用获取token接口获取token以及token有效期，在后面调用的业务接口中携带token，如果token有效期过期需要重新调用获取token接口。
#### 接口方法
POST
#### URL
https://IP:PORT/oifde/rest/api/gettoken
#### 请求说明
表1请求头参数 
| 序号 | 名称           | 参数类型   | 是否必选 | 说明                                   |
|:---|:---|:---|:---|:---|
| 1  | Content-Type | String | True | 固定填 application/json; charset=UTF-8。 |
   
表2请求体参数 
| 参数名称      | 数据类型   | 参数位置 | 必选/可选 | 描述                  |
|:---|:---|:---|:---|:---|
| appKey    | String | body | True  | APP标识，取值为租户ID。      |
| appSecret | String | body | True  | APP密钥，需要双方约定，可动态变更。 |
   
![](https://support.huaweicloud.com/api-ccfs-cec/public_sys-resources/note_3.0-zh-cn.png)
如何获取"appKey"和"appSecret"？
1. 首先确认智能助手平台系统对接是与以下哪个系统对接：租户粒度（第三方系统）、系统粒度（第三方系统）、系统粒度（内部系统如AICC或CSP）对接。
2. 若与租户粒度（第三方系统）对接，需要使用租户id来获取token，在token有效期内完成调用操作，而且后续每一次接口调用都需要传入获取的token（对接第三方系统时，接口的请求消息体中请携带authToken）。
   - "appKey"：为您所在的租户ID，您可在登录租间后，使用浏览器的开发工具查看Cookies，获取"TenantId"的值。
   
   - "appSecret"：为配置中心下的"机器人管理 \> 流程设置\>系统管理\>系统设置"，在API口令设置下设置的第三方口令。
    
3. 若与系统粒度（第三方系统）对接，需要使用默认系统对接约定的默认用户来获取token，在token有效期内完成调用操作，而且后续每一次接口调用都需要传入获取的token（对接第三方系统时，接口的请求消息头中请携带username=*appkey* ;token=*authToken* ）。
   该鉴权目前仅支持调用[离线转写回调接口](https://support.huaweicloud.com/api-ccfs-cec/cec_07_0914.html#ZH-CN_TOPIC_0000002513233835)，其他接口暂未开放权限调用。
   - "appKey"：为安装ODFS网元时配置的"ODFS作为服务端提供给第三方侧进行机机通信的账号"，通常为ODFS_SYS_OPENAPI。
   
   - "appSecret"，使用安装时配置的"ODFS作为服务端提供给第三方侧进行机机通信密码"。
     
4. 若与内部系统（AICC或CSP）对接，需要使用默认系统对接约定的默认用户来获取token，在token有效期内完成调用操作，而且后续每一次接口调用都需要传入获取的token（对接内部系统时，接口的请求消息头中请携带username=*appkey* ;token=*authToken* ）。
   - "appKey"：为安装ODFS网元时配置的"ODFS提供的机机接口访问的用户名"，通常为ipcc。
   
   - "appSecret"，使用安装时配置的"ODFS提供的机机接口服务端密码"。
    
 
![](https://support.huaweicloud.com/api-ccfs-cec/figure/zh-cn_image_0000001786426310.png "点击放大")
#### 响应说明
| 参数名称       | 数据类型   | 参数位置 | 必选/可选 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|:---|
| errorCode  | int    | body | True  | 错误码 - 0：成功  - 非0表示失败 或可通过状态码为200判断为成功    |
| errorMsg   | String | body | False | 错误描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| authToken  | String | body | True  | 认证token                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| expireTime | int    | body | False | 令牌有效期，单位是秒数，默认 3600 秒； 错误码非0时，无返回。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 报文样例
- 请求消息体
  ```
  {
     "appKey": "tenant001",
     "appSecret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
  }
  ```
  
- 响应消息体
  ```
  {
      "errorCode" : 0, // int, 错误码,无错时为0 
      "errorMsg" : "", // String, 出错信息,无错时为空
      "authToken": "2************************", 
      "expireTime" : 3600
  }
  ```
  
 
