
# 租户实例串流前获取设备的device_token - GetDeviceToken
#### 功能介绍
租户实例串流前获取设备的device_token。
调用此api的前提条件是租户需要先购买实例。
调用该接口获取云机实例的device_token后作为鉴权信息，并携带云机实例的device_id去调用返参中的信令地址（signaling_url）。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/KooPhone/doc?api=GetDeviceToken)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-koophone/kp_01_0009.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                                  | 访问级别  | 资源类型（\*为必须）           | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | koophone:cloudphoneResource:executeInstanceAuthToken | Write | cloudphoneResource \* | -   | -  | -      |
     
  
 
#### URI
POST /v1/instances/{instance_id}/auth
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| instance_id | 是    | String | 实例id |
   
表2Query参数 
| 参数          | 是否必选 | 参数类型    | 描述                  |
|:---|:---|:---|:---|
| stream_type | 否    | Integer | 串流类型。1：SDK串流，2：H5串流 |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述             |
|:---|:---|:---|:---|
| x-auth-token | 是    | String | 租户的iam token信息 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                        | 描述     |
|:---|:---|:---|
| data       | [data] object | 返参全部信息 |
| error_code | String                                                      | 错误码    |
| error_msg  | String                                                      | 错误信息   |
   
 表5data 
| 参数           | 参数类型                                                                | 描述        |
|:---|:---|:---|
| streamingId  | String                                                              | 串流id标识    |
| resource     | [resource] object | 资源集合      |
| device_token | String                                                              | 设备鉴权token |
   
 表6resource 
| 参数                      | 参数类型                                                      | 描述               |
|:---|:---|:---|
| sdk                     | [sdk] object | sdk信息            |
| rtc                     | [rtc] object | rtc信息            |
| device_id               | String                                                    | 设备id             |
| kp_id                   | String                                                    | 云机实例Id，如whklpuo1 |
| fingerprint_id          | Integer                                                   | 指纹ID             |
| ip_proxy                | Integer                                                   | 代理               |
| app_ip_synchronize_list | String                                                    | appip列表          |
   
 表7sdk 
| 参数       | 参数类型                                                                | 描述   |
|:---|:---|:---|
| internal | [internal] object | 内网信息 |
| external | [external] object | 外网信息 |
   
 表8internal 
| 参数           | 参数类型   | 描述     |
|:---|:---|:---|
| address      | String | 内网ip地址 |
| aport        | String | 音频端口   |
| atype        | String | 音频类型   |
| address_ipv6 | String | ipv6地址 |
   
 表9external 
| 参数           | 参数类型    | 描述       |
|:---|:---|:---|
| address      | String  | 外网eip地址  |
| aport        | Integer | 音频端口     |
| atype        | Integer | 音频类型     |
| address_ipv6 | String  | 外网ipv6地址 |
| address_adn  | String  | adn地址    |
   
 表10rtc 
| 参数            | 参数类型                                                                         | 描述      |
|:---|:---|:---|
| ice_signaling | [ice_signaling]object | ice信令信息 |
   
 表11ice_signaling 
| 参数            | 参数类型             | 描述              |
|:---|:---|:---|
| signaling_url | String           | 信令服务访问地址        |
| expired_time  | String           | streaming时长，单位秒 |
| ice_servers   | Array of strings | ICE服务器          |
   
**状态码：400**
表12响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                              |
|:---|:---|:---|
| error_code | String | 0：成功 KOOPHONE.API.1000：请求参数错误 KOOPHONE.API.1001：没有实例权限 KOOPHONE.API.9999：服务内部报错 |
| error_msg  | String | 错误信息                                                                                                                                                                                                                            |
   
#### 请求示例
post接口，请求url中携带租户自己购买的实例和租户的token直接调用。
```
/v1/instances/Q39YyZvI/auth
```
#### 响应示例
**状态码：200**
实例鉴权接口返回设备信息
```
{
  "data" : {
    "resource" : {
      "sdk" : {
        "internal" : {
          "address" : null,
          "aport" : null,
          "atype" : null,
          "address_ipv6" : null
        },
        "external" : {
          "address" : "10.83.71.187",
          "aport" : 10030,
          "atype" : 1,
          "address_ipv6" : null
        }
      },
      "rtc" : {
        "ice_signaling" : {
          "signaling_url" : "http://100.93.2.248:18082",
          "expired_time" : null,
          "ice_servers" : [ ]
        }
      },
      "device_id" : "7b0cd026df8d495b8a65d628d7bec433",
      "kp_id" : "Q39YyZvI"
    },
    "device_token" : "dee5081f40c83ddea3ded91c387351e9"
  },
  "error_code" : "0",
  "error_msg" : "ok"
}
```
**状态码：400**
请求错误
```
{
  "error_code" : "string",
  "error_msg" : "string"
}
```
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 200 | 实例鉴权接口返回设备信息 |
| 400 | 请求错误         |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-koophone/ErrorCode.html)。
