telnyx-video-javascript

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
<!-- 由Telnyx OpenAPI规范自动生成,请勿编辑。 -->

Telnyx Video - JavaScript

Telnyx视频 - JavaScript

Installation

安装

bash
npm install telnyx
bash
npm install telnyx

Setup

配置

javascript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
All examples below assume
client
is already initialized as shown above.
javascript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
以下所有示例均假设
client
已按照上述方式完成初始化。

Error Handling

错误处理

All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:
javascript
try {
  const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
  if (err instanceof Telnyx.APIConnectionError) {
    console.error('Network error — check connectivity and retry');
  } else if (err instanceof Telnyx.RateLimitError) {
    // 429: rate limited — wait and retry with exponential backoff
    const retryAfter = err.headers?.['retry-after'] || 1;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  } else if (err instanceof Telnyx.APIError) {
    console.error(`API error ${err.status}: ${err.message}`);
    if (err.status === 422) {
      console.error('Validation error — check required fields and formats');
    }
  }
}
Common error codes:
401
invalid API key,
403
insufficient permissions,
404
resource not found,
422
validation error (check field formats),
429
rate limited (retry with exponential backoff).
所有API调用都可能出现网络错误、速率限制(429)、校验错误(422)或身份验证错误(401)。在生产代码中请务必做好错误处理:
javascript
try {
  const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
  if (err instanceof Telnyx.APIConnectionError) {
    console.error('Network error — check connectivity and retry');
  } else if (err instanceof Telnyx.RateLimitError) {
    // 429: rate limited — wait and retry with exponential backoff
    const retryAfter = err.headers?.['retry-after'] || 1;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  } else if (err instanceof Telnyx.APIError) {
    console.error(`API error ${err.status}: ${err.message}`);
    if (err.status === 422) {
      console.error('Validation error — check required fields and formats');
    }
  }
}
常见错误码:
401
API密钥无效,
403
权限不足,
404
资源未找到,
422
校验错误(请检查字段格式),
429
触发速率限制(请使用指数退避策略重试)。

View a list of room compositions.

查看房间合成文件列表

GET /room_compositions
javascript
// Automatically fetches more pages as needed.
for await (const roomComposition of client.roomCompositions.list()) {
  console.log(roomComposition.id);
}
Returns:
completed_at
(date-time),
created_at
(date-time),
download_url
(string),
duration_secs
(integer),
ended_at
(date-time),
format
(enum: mp4),
id
(uuid),
record_type
(string),
resolution
(string),
room_id
(uuid),
session_id
(uuid),
size_mb
(float),
started_at
(date-time),
status
(enum: completed, enqueued, processing),
updated_at
(date-time),
user_id
(uuid),
video_layout
(object),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
GET /room_compositions
javascript
// Automatically fetches more pages as needed.
for await (const roomComposition of client.roomCompositions.list()) {
  console.log(roomComposition.id);
}
返回参数:
completed_at
(日期时间)、
created_at
(日期时间)、
download_url
(字符串)、
duration_secs
(整数)、
ended_at
(日期时间)、
format
(枚举值:mp4)、
id
(uuid)、
record_type
(字符串)、
resolution
(字符串)、
room_id
(uuid)、
session_id
(uuid)、
size_mb
(浮点数)、
started_at
(日期时间)、
status
(枚举值:completed, enqueued, processing)、
updated_at
(日期时间)、
user_id
(uuid)、
video_layout
(对象)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)

Create a room composition.

创建房间合成文件

Asynchronously create a room composition.
POST /room_compositions
Optional:
format
(string),
resolution
(string),
session_id
(uuid),
video_layout
(object),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
javascript
const roomComposition = await client.roomCompositions.create();

console.log(roomComposition.data);
Returns:
completed_at
(date-time),
created_at
(date-time),
download_url
(string),
duration_secs
(integer),
ended_at
(date-time),
format
(enum: mp4),
id
(uuid),
record_type
(string),
resolution
(string),
room_id
(uuid),
session_id
(uuid),
size_mb
(float),
started_at
(date-time),
status
(enum: completed, enqueued, processing),
updated_at
(date-time),
user_id
(uuid),
video_layout
(object),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
异步创建房间合成文件。
POST /room_compositions
可选参数:
format
(字符串)、
resolution
(字符串)、
session_id
(uuid)、
video_layout
(对象)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)
javascript
const roomComposition = await client.roomCompositions.create();

console.log(roomComposition.data);
返回参数:
completed_at
(日期时间)、
created_at
(日期时间)、
download_url
(字符串)、
duration_secs
(整数)、
ended_at
(日期时间)、
format
(枚举值:mp4)、
id
(uuid)、
record_type
(字符串)、
resolution
(字符串)、
room_id
(uuid)、
session_id
(uuid)、
size_mb
(浮点数)、
started_at
(日期时间)、
status
(枚举值:completed, enqueued, processing)、
updated_at
(日期时间)、
user_id
(uuid)、
video_layout
(对象)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)

View a room composition.

查看单个房间合成文件

GET /room_compositions/{room_composition_id}
javascript
const roomComposition = await client.roomCompositions.retrieve(
  '5219b3af-87c6-4c08-9b58-5a533d893e21',
);

console.log(roomComposition.data);
Returns:
completed_at
(date-time),
created_at
(date-time),
download_url
(string),
duration_secs
(integer),
ended_at
(date-time),
format
(enum: mp4),
id
(uuid),
record_type
(string),
resolution
(string),
room_id
(uuid),
session_id
(uuid),
size_mb
(float),
started_at
(date-time),
status
(enum: completed, enqueued, processing),
updated_at
(date-time),
user_id
(uuid),
video_layout
(object),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
GET /room_compositions/{room_composition_id}
javascript
const roomComposition = await client.roomCompositions.retrieve(
  '5219b3af-87c6-4c08-9b58-5a533d893e21',
);

console.log(roomComposition.data);
返回参数:
completed_at
(日期时间)、
created_at
(日期时间)、
download_url
(字符串)、
duration_secs
(整数)、
ended_at
(日期时间)、
format
(枚举值:mp4)、
id
(uuid)、
record_type
(字符串)、
resolution
(字符串)、
room_id
(uuid)、
session_id
(uuid)、
size_mb
(浮点数)、
started_at
(日期时间)、
status
(枚举值:completed, enqueued, processing)、
updated_at
(日期时间)、
user_id
(uuid)、
video_layout
(对象)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)

Delete a room composition.

删除房间合成文件

Synchronously delete a room composition.
DELETE /room_compositions/{room_composition_id}
javascript
await client.roomCompositions.delete('5219b3af-87c6-4c08-9b58-5a533d893e21');
同步删除房间合成文件。
DELETE /room_compositions/{room_composition_id}
javascript
await client.roomCompositions.delete('5219b3af-87c6-4c08-9b58-5a533d893e21');

View a list of room participants.

查看房间参与者列表

GET /room_participants
javascript
// Automatically fetches more pages as needed.
for await (const roomParticipant of client.roomParticipants.list()) {
  console.log(roomParticipant.id);
}
Returns:
context
(string),
id
(uuid),
joined_at
(date-time),
left_at
(date-time),
record_type
(string),
session_id
(uuid),
updated_at
(date-time)
GET /room_participants
javascript
// Automatically fetches more pages as needed.
for await (const roomParticipant of client.roomParticipants.list()) {
  console.log(roomParticipant.id);
}
返回参数:
context
(字符串)、
id
(uuid)、
joined_at
(日期时间)、
left_at
(日期时间)、
record_type
(字符串)、
session_id
(uuid)、
updated_at
(日期时间)

View a room participant.

查看单个房间参与者

GET /room_participants/{room_participant_id}
javascript
const roomParticipant = await client.roomParticipants.retrieve(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
);

console.log(roomParticipant.data);
Returns:
context
(string),
id
(uuid),
joined_at
(date-time),
left_at
(date-time),
record_type
(string),
session_id
(uuid),
updated_at
(date-time)
GET /room_participants/{room_participant_id}
javascript
const roomParticipant = await client.roomParticipants.retrieve(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
);

console.log(roomParticipant.data);
返回参数:
context
(字符串)、
id
(uuid)、
joined_at
(日期时间)、
left_at
(日期时间)、
record_type
(字符串)、
session_id
(uuid)、
updated_at
(日期时间)

View a list of room recordings.

查看房间录制文件列表

GET /room_recordings
javascript
// Automatically fetches more pages as needed.
for await (const roomRecordingListResponse of client.roomRecordings.list()) {
  console.log(roomRecordingListResponse.id);
}
Returns:
codec
(string),
completed_at
(date-time),
created_at
(date-time),
download_url
(string),
duration_secs
(integer),
ended_at
(date-time),
id
(uuid),
participant_id
(uuid),
record_type
(string),
room_id
(uuid),
session_id
(uuid),
size_mb
(float),
started_at
(date-time),
status
(enum: completed, processing),
type
(enum: audio, video),
updated_at
(date-time)
GET /room_recordings
javascript
// Automatically fetches more pages as needed.
for await (const roomRecordingListResponse of client.roomRecordings.list()) {
  console.log(roomRecordingListResponse.id);
}
返回参数:
codec
(字符串)、
completed_at
(日期时间)、
created_at
(日期时间)、
download_url
(字符串)、
duration_secs
(整数)、
ended_at
(日期时间)、
id
(uuid)、
participant_id
(uuid)、
record_type
(字符串)、
room_id
(uuid)、
session_id
(uuid)、
size_mb
(浮点数)、
started_at
(日期时间)、
status
(枚举值:completed, processing)、
type
(枚举值:audio, video)、
updated_at
(日期时间)

Delete several room recordings in a bulk.

批量删除房间录制文件

DELETE /room_recordings
javascript
const response = await client.roomRecordings.deleteBulk();

console.log(response.data);
Returns:
room_recordings
(integer)
DELETE /room_recordings
javascript
const response = await client.roomRecordings.deleteBulk();

console.log(response.data);
返回参数:
room_recordings
(整数)

View a room recording.

查看单个房间录制文件

GET /room_recordings/{room_recording_id}
javascript
const roomRecording = await client.roomRecordings.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(roomRecording.data);
Returns:
codec
(string),
completed_at
(date-time),
created_at
(date-time),
download_url
(string),
duration_secs
(integer),
ended_at
(date-time),
id
(uuid),
participant_id
(uuid),
record_type
(string),
room_id
(uuid),
session_id
(uuid),
size_mb
(float),
started_at
(date-time),
status
(enum: completed, processing),
type
(enum: audio, video),
updated_at
(date-time)
GET /room_recordings/{room_recording_id}
javascript
const roomRecording = await client.roomRecordings.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(roomRecording.data);
返回参数:
codec
(字符串)、
completed_at
(日期时间)、
created_at
(日期时间)、
download_url
(字符串)、
duration_secs
(整数)、
ended_at
(日期时间)、
id
(uuid)、
participant_id
(uuid)、
record_type
(字符串)、
room_id
(uuid)、
session_id
(uuid)、
size_mb
(浮点数)、
started_at
(日期时间)、
status
(枚举值:completed, processing)、
type
(枚举值:audio, video)、
updated_at
(日期时间)

Delete a room recording.

删除单个房间录制文件

Synchronously delete a Room Recording.
DELETE /room_recordings/{room_recording_id}
javascript
await client.roomRecordings.delete('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');
同步删除房间录制文件。
DELETE /room_recordings/{room_recording_id}
javascript
await client.roomRecordings.delete('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

View a list of room sessions.

查看房间会话列表

GET /room_sessions
javascript
// Automatically fetches more pages as needed.
for await (const roomSession of client.rooms.sessions.list0()) {
  console.log(roomSession.id);
}
Returns:
active
(boolean),
created_at
(date-time),
ended_at
(date-time),
id
(uuid),
participants
(array[object]),
record_type
(string),
room_id
(uuid),
updated_at
(date-time)
GET /room_sessions
javascript
// Automatically fetches more pages as needed.
for await (const roomSession of client.rooms.sessions.list0()) {
  console.log(roomSession.id);
}
返回参数:
active
(布尔值)、
created_at
(日期时间)、
ended_at
(日期时间)、
id
(uuid)、
participants
(对象数组)、
record_type
(字符串)、
room_id
(uuid)、
updated_at
(日期时间)

View a room session.

查看单个房间会话

GET /room_sessions/{room_session_id}
javascript
const session = await client.rooms.sessions.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(session.data);
Returns:
active
(boolean),
created_at
(date-time),
ended_at
(date-time),
id
(uuid),
participants
(array[object]),
record_type
(string),
room_id
(uuid),
updated_at
(date-time)
GET /room_sessions/{room_session_id}
javascript
const session = await client.rooms.sessions.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(session.data);
返回参数:
active
(布尔值)、
created_at
(日期时间)、
ended_at
(日期时间)、
id
(uuid)、
participants
(对象数组)、
record_type
(字符串)、
room_id
(uuid)、
updated_at
(日期时间)

End a room session.

结束房间会话

Note: this will also kick all participants currently present in the room
POST /room_sessions/{room_session_id}/actions/end
javascript
const response = await client.rooms.sessions.actions.end('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
Returns:
result
(string)
注意:该操作会同时踢出当前房间内的所有参与者
POST /room_sessions/{room_session_id}/actions/end
javascript
const response = await client.rooms.sessions.actions.end('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
返回参数:
result
(字符串)

Kick participants from a room session.

踢出房间会话中的参与者

POST /room_sessions/{room_session_id}/actions/kick
Optional:
exclude
(array[string]),
participants
(object)
javascript
const response = await client.rooms.sessions.actions.kick('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
Returns:
result
(string)
POST /room_sessions/{room_session_id}/actions/kick
可选参数:
exclude
(字符串数组)、
participants
(对象)
javascript
const response = await client.rooms.sessions.actions.kick('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
返回参数:
result
(字符串)

Mute participants in room session.

静音房间会话中的参与者

POST /room_sessions/{room_session_id}/actions/mute
Optional:
exclude
(array[string]),
participants
(object)
javascript
const response = await client.rooms.sessions.actions.mute('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
Returns:
result
(string)
POST /room_sessions/{room_session_id}/actions/mute
可选参数:
exclude
(字符串数组)、
participants
(对象)
javascript
const response = await client.rooms.sessions.actions.mute('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
返回参数:
result
(字符串)

Unmute participants in room session.

取消房间会话中参与者的静音状态

POST /room_sessions/{room_session_id}/actions/unmute
Optional:
exclude
(array[string]),
participants
(object)
javascript
const response = await client.rooms.sessions.actions.unmute('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
Returns:
result
(string)
POST /room_sessions/{room_session_id}/actions/unmute
可选参数:
exclude
(字符串数组)、
participants
(对象)
javascript
const response = await client.rooms.sessions.actions.unmute('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(response.data);
返回参数:
result
(字符串)

View a list of room participants.

查看房间参与者列表

GET /room_sessions/{room_session_id}/participants
javascript
// Automatically fetches more pages as needed.
for await (const roomParticipant of client.rooms.sessions.retrieveParticipants(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
)) {
  console.log(roomParticipant.id);
}
Returns:
context
(string),
id
(uuid),
joined_at
(date-time),
left_at
(date-time),
record_type
(string),
session_id
(uuid),
updated_at
(date-time)
GET /room_sessions/{room_session_id}/participants
javascript
// Automatically fetches more pages as needed.
for await (const roomParticipant of client.rooms.sessions.retrieveParticipants(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
)) {
  console.log(roomParticipant.id);
}
返回参数:
context
(字符串)、
id
(uuid)、
joined_at
(日期时间)、
left_at
(日期时间)、
record_type
(字符串)、
session_id
(uuid)、
updated_at
(日期时间)

View a list of rooms.

查看房间列表

GET /rooms
javascript
// Automatically fetches more pages as needed.
for await (const room of client.rooms.list()) {
  console.log(room.id);
}
Returns:
active_session_id
(uuid),
created_at
(date-time),
enable_recording
(boolean),
id
(uuid),
max_participants
(integer),
record_type
(string),
sessions
(array[object]),
unique_name
(string),
updated_at
(date-time),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
GET /rooms
javascript
// Automatically fetches more pages as needed.
for await (const room of client.rooms.list()) {
  console.log(room.id);
}
返回参数:
active_session_id
(uuid)、
created_at
(日期时间)、
enable_recording
(布尔值)、
id
(uuid)、
max_participants
(整数)、
record_type
(字符串)、
sessions
(对象数组)、
unique_name
(字符串)、
updated_at
(日期时间)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)

Create a room.

创建房间

Synchronously create a Room.
POST /rooms
Optional:
enable_recording
(boolean),
max_participants
(integer),
unique_name
(string),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
javascript
const room = await client.rooms.create({
    uniqueName: 'my-meeting-room',
    maxParticipants: 10,
});

console.log(room.data);
Returns:
active_session_id
(uuid),
created_at
(date-time),
enable_recording
(boolean),
id
(uuid),
max_participants
(integer),
record_type
(string),
sessions
(array[object]),
unique_name
(string),
updated_at
(date-time),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
同步创建房间。
POST /rooms
可选参数:
enable_recording
(布尔值)、
max_participants
(整数)、
unique_name
(字符串)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)
javascript
const room = await client.rooms.create({
    uniqueName: 'my-meeting-room',
    maxParticipants: 10,
});

console.log(room.data);
返回参数:
active_session_id
(uuid)、
created_at
(日期时间)、
enable_recording
(布尔值)、
id
(uuid)、
max_participants
(整数)、
record_type
(字符串)、
sessions
(对象数组)、
unique_name
(字符串)、
updated_at
(日期时间)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)

View a room.

查看单个房间

GET /rooms/{room_id}
javascript
const room = await client.rooms.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(room.data);
Returns:
active_session_id
(uuid),
created_at
(date-time),
enable_recording
(boolean),
id
(uuid),
max_participants
(integer),
record_type
(string),
sessions
(array[object]),
unique_name
(string),
updated_at
(date-time),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
GET /rooms/{room_id}
javascript
const room = await client.rooms.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(room.data);
返回参数:
active_session_id
(uuid)、
created_at
(日期时间)、
enable_recording
(布尔值)、
id
(uuid)、
max_participants
(整数)、
record_type
(字符串)、
sessions
(对象数组)、
unique_name
(字符串)、
updated_at
(日期时间)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)

Update a room.

更新房间

Synchronously update a Room.
PATCH /rooms/{room_id}
Optional:
enable_recording
(boolean),
max_participants
(integer),
unique_name
(string),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
javascript
const room = await client.rooms.update('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(room.data);
Returns:
active_session_id
(uuid),
created_at
(date-time),
enable_recording
(boolean),
id
(uuid),
max_participants
(integer),
record_type
(string),
sessions
(array[object]),
unique_name
(string),
updated_at
(date-time),
webhook_event_failover_url
(uri),
webhook_event_url
(uri),
webhook_timeout_secs
(integer)
同步更新房间信息。
PATCH /rooms/{room_id}
可选参数:
enable_recording
(布尔值)、
max_participants
(整数)、
unique_name
(字符串)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)
javascript
const room = await client.rooms.update('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

console.log(room.data);
返回参数:
active_session_id
(uuid)、
created_at
(日期时间)、
enable_recording
(布尔值)、
id
(uuid)、
max_participants
(整数)、
record_type
(字符串)、
sessions
(对象数组)、
unique_name
(字符串)、
updated_at
(日期时间)、
webhook_event_failover_url
(uri)、
webhook_event_url
(uri)、
webhook_timeout_secs
(整数)

Delete a room.

删除房间

Synchronously delete a Room. Participants from that room will be kicked out, they won't be able to join that room anymore, and you won't be charged anymore for that room.
DELETE /rooms/{room_id}
javascript
await client.rooms.delete('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');
同步删除房间。该房间的所有参与者将被踢出,无法再加入该房间,同时你无需再为该房间付费。
DELETE /rooms/{room_id}
javascript
await client.rooms.delete('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');

Create Client Token to join a room.

生成加入房间的客户端令牌

Synchronously create an Client Token to join a Room. Client Token is necessary to join a Telnyx Room. Client Token will expire after
token_ttl_secs
, a Refresh Token is also provided to refresh a Client Token, the Refresh Token expires after
refresh_token_ttl_secs
.
POST /rooms/{room_id}/actions/generate_join_client_token
Optional:
refresh_token_ttl_secs
(integer),
token_ttl_secs
(integer)
javascript
const response = await client.rooms.actions.generateJoinClientToken(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
);

console.log(response.data);
Returns:
refresh_token
(string),
refresh_token_expires_at
(date-time),
token
(string),
token_expires_at
(date-time)
同步生成加入房间的客户端令牌。加入Telnyx房间必须使用客户端令牌。客户端令牌将在
token_ttl_secs
后过期,同时接口会返回刷新令牌用于更新客户端令牌,刷新令牌将在
refresh_token_ttl_secs
后过期。
POST /rooms/{room_id}/actions/generate_join_client_token
可选参数:
refresh_token_ttl_secs
(整数)、
token_ttl_secs
(整数)
javascript
const response = await client.rooms.actions.generateJoinClientToken(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
);

console.log(response.data);
返回参数:
refresh_token
(字符串)、
refresh_token_expires_at
(日期时间)、
token
(字符串)、
token_expires_at
(日期时间)

Refresh Client Token to join a room.

刷新加入房间的客户端令牌

Synchronously refresh an Client Token to join a Room. Client Token is necessary to join a Telnyx Room. Client Token will expire after
token_ttl_secs
.
POST /rooms/{room_id}/actions/refresh_client_token
— Required:
refresh_token
Optional:
token_ttl_secs
(integer)
javascript
const response = await client.rooms.actions.refreshClientToken(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
  {
    refresh_token:
      'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJ0ZWxueXhfdGVsZXBob255IiwiZXhwIjoxNTkwMDEwMTQzLCJpYXQiOjE1ODc1OTA5NDMsImlzcyI6InRlbG55eF90ZWxlcGhvbnkiLCJqdGkiOiJiOGM3NDgzNy1kODllLTRhNjUtOWNmMi0zNGM3YTZmYTYwYzgiLCJuYmYiOjE1ODc1OTA5NDIsInN1YiI6IjVjN2FjN2QwLWRiNjUtNGYxMS05OGUxLWVlYzBkMWQ1YzZhZSIsInRlbF90b2tlbiI6InJqX1pra1pVT1pNeFpPZk9tTHBFVUIzc2lVN3U2UmpaRmVNOXMtZ2JfeENSNTZXRktGQUppTXlGMlQ2Q0JSbWxoX1N5MGlfbGZ5VDlBSThzRWlmOE1USUlzenl6U2xfYURuRzQ4YU81MHlhSEd1UlNZYlViU1ltOVdJaVEwZz09IiwidHlwIjoiYWNjZXNzIn0.gNEwzTow5MLLPLQENytca7pUN79PmPj6FyqZWW06ZeEmesxYpwKh0xRtA0TzLh6CDYIRHrI8seofOO0YFGDhpQ',
  },
);

console.log(response.data);
Returns:
token
(string),
token_expires_at
(date-time)
同步刷新加入房间的客户端令牌。加入Telnyx房间必须使用客户端令牌。客户端令牌将在
token_ttl_secs
后过期。
POST /rooms/{room_id}/actions/refresh_client_token
— 必填参数:
refresh_token
可选参数:
token_ttl_secs
(整数)
javascript
const response = await client.rooms.actions.refreshClientToken(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
  {
    refresh_token:
      'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJ0ZWxueXhfdGVsZXBob255IiwiZXhwIjoxNTkwMDEwMTQzLCJpYXQiOjE1ODc1OTA5NDMsImlzcyI6InRlbG55eF90ZWxlcGhvbnkiLCJqdGkiOiJiOGM3NDgzNy1kODllLTRhNjUtOWNmMi0zNGM3YTZmYTYwYzgiLCJuYmYiOjE1ODc1OTA5NDIsInN1YiI6IjVjN2FjN2QwLWRiNjUtNGYxMS05OGUxLWVlYzBkMWQ1YzZhZSIsInRlbF90b2tlbiI6InJqX1pra1pVT1pNeFpPZk9tTHBFVUIzc2lVN3U2UmpaRmVNOXMtZ2JfeENSNTZXRktGQUppTXlGMlQ2Q0JSbWxoX1N5MGlfbGZ5VDlBSThzRWlmOE1USUlzenl6U2xfYURuRzQ4YU81MHlhSEd1UlNZYlViU1ltOVdJaVEwZz09IiwidHlwIjoiYWNjZXNzIn0.gNEwzTow5MLLPLQENytca7pUN79PmPj6FyqZWW06ZeEmesxYpwKh0xRtA0TzLh6CDYIRHrI8seofOO0YFGDhpQ',
  },
);

console.log(response.data);
返回参数:
token
(字符串)、
token_expires_at
(日期时间)

View a list of room sessions.

查看房间会话列表

GET /rooms/{room_id}/sessions
javascript
// Automatically fetches more pages as needed.
for await (const roomSession of client.rooms.sessions.list1(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
)) {
  console.log(roomSession.id);
}
Returns:
active
(boolean),
created_at
(date-time),
ended_at
(date-time),
id
(uuid),
participants
(array[object]),
record_type
(string),
room_id
(uuid),
updated_at
(date-time)
GET /rooms/{room_id}/sessions
javascript
// Automatically fetches more pages as needed.
for await (const roomSession of client.rooms.sessions.list1(
  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
)) {
  console.log(roomSession.id);
}
返回参数:
active
(布尔值)、
created_at
(日期时间)、
ended_at
(日期时间)、
id
(uuid)、
participants
(对象数组)、
record_type
(字符串)、
room_id
(uuid)、
updated_at
(日期时间)