Whitelabeling: Theme Management for Meeting Rooms
Use the Meetings API to create custom themes with different colors, logos, and text. Themes can be applied to one room, a few rooms, or all the meeting rooms in your application.
Prerequisites
Vonage Developer Account: If you do not already have one, sign-up for a free account on the Vonage Developers Account.
Application ID and Secret: Once you’re logged in to the Vonage API Dashboard, click on Applications and create a new Application. Click
Generate public and private keyand record the private key. You'll be using the private key with the Application ID to Generate a JSON Web Token (JWT). For further details about JWTs, please see Authentication. Also ensure that the Meetings API is enabled for your application under 'Capabilities':

Create a Theme
https://api-eu.vonage.com/v1/meetings/themes
Body Content
The following fields can be assigned values in the POST request:
| Field | Required? | Description |
|---|---|---|
theme_name | No | The name of the theme (must be unique). If null, a UUID will automatically be generated. |
main_color | Yes | The main color that will be used for the meeting room. |
brand_text | Yes | The text that will appear on the meeting homepage, in the case that there is no brand image. |
short_company_url | No | The URL that will represent every meeting room with this theme (must be unique). |
Example Request
The following example will create a theme with orange as the main color and a display text of "Orange". The theme name is used internally and must be unique for each theme.
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
await meetingsClient.createTheme({
themeName: "orange-room",
mainColor: '#ff6500',
brand: "Orange",
});
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var theme = Theme.builder()
.mainColor("#ff6500")
.brandText("Orange")
.themeName("orange-room")
.build();
client.getMeetingsClient().createTheme(theme);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateThemeRequest.Build()
.WithBrand("Orange")
.WithColor(Color.FromName("#ff6500"))
.WithName("orange-room")
.Create();
var response = await client.MeetingsClient.CreateThemeAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$applicationTheme = $client->meetings()->createTheme('orange-room');
$applicationTheme = $client->meetings()->updateTheme($applicationTheme->theme_id, [
'update_details' => [
'brand_text' => 'Orange',
'main_color' => '#ff6500'
]
]);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.create_theme(
{
'main_color': '#ff6500',
'brand_text': 'Orange',
'theme_name': 'orange-room',
}
)
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
theme = client.meetings.themes.create(
theme_name: "orange-theme",
main_color: "#ff6500",
brand_text: "Orange"
)
Example Response
{
"theme_id": "49d900c8-372b-4c9e-b682-5601cbdc1f7a",
"theme_name": "orange-room",
"domain": "VCP",
"account_id": "123ab4cd",
"application_id": "921a6f5b-1f94-49f4-8107-26f0c75fc6e7",
"main_color": "#ff6500",
"short_company_url": null,
"brand_text": "Orange",
"brand_image_colored": null,
"brand_image_white": null,
"branded_favicon": null,
"brand_image_white_url": null,
"brand_image_colored_url": null,
"branded_favicon_url": null
}
Note that the null values represent theme images that can be added using the image management process. The URLs that will be generated once those images are uploaded.
Update a Theme
PATCH: https://api-eu.vonage.com/v1/meetings/themes/:theme_id
Theme properties that can be updated are the same as those that can be set upon create. All images must be added via the image management process.
To update properties, you'll need the theme_id and an object called update_details:
Example Request
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
const theme = await meetingsClient.getTheme("86da462e-fac4-4f46-87ed-63eafc81be48");
theme.mainColor = '#12f64e';
theme.brand = 'Brand';
theme.shortCompanyUrl = "short-url";
await meetingsClient.updateTheme("86da462e-fac4-4f46-87ed-63eafc81be48", theme);
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var theme = client.getMeetingsClient().updateTheme(
UUID.fromString("86da462e-fac4-4f46-87ed-63eafc81be48"),
Theme.builder()
.mainColor("#12f64e")
.brandText("Brand")
.shortCompanyUrl("short-url")
.build()
);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = UpdateThemeRequest.Build()
.WithThemeId(new Guid("86da462e-fac4-4f46-87ed-63eafc81be48"))
.WithColor(Color.FromArgb(255, 18, 246, 78))
.WithBrandText("Brand")
.WithShortCompanyUrl(new Uri("short-url", UriKind.Relative))
.Create();
var response = await client.MeetingsClient.UpdateThemeAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$applicationTheme = $client->meetings()->updateTheme('49d900c8-372b-4c9e-b682-5601cbdc1f7a', [
'update_details' => [
'theme_name' => 'blue-theme',
'main_color' => '#0000ff'
'brand_text' => 'Blue'
'short_company_ul' => 'https://my-app/35f5D'
]
]);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.update_theme(
'49d900c8-372b-4c9e-b682-5601cbdc1f7a',
{
'theme_name': 'blue-theme',
'main_color': '#0000ff',
'brand_text': 'Blue',
},
)
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
theme = client.meetings.themes.update(
theme_id: "49d900c8-372b-4c9e-b682-5601cbdc1f7a",
theme_name: "blue-theme",
main_color: "#0000ff",
brand_text: "Blue"
)
Example Response
{
"theme_id": "ef2b46f3-8ebb-437e-a671-272e4990fbc8",
"theme_name": "Theme1",
"domain": "VCP",
"account_id": "123ab4cd",
"application_id": "921a6f5b-1f94-49f4-8107-26f0c75fc6e7",
"main_color": "#12f64e",
"short_company_url": "short-url",
"brand_text": "Brand",
"brand_image_colored": "branded-image-colored",
"brand_image_white": "branded-image-white",
"branded_favicon": "branded-favicon",
"brand_image_colored_url": "branded-image-colored-url",
"brand_image_white_url": "branded-image-white-url",
"branded_favicon_url": "branded-favicon-url"
}
Get a Theme
https://api-eu.vonage.com/v1/meetings/themes/:theme_id
Send a
Example Request
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
const theme = await meetingsClient.getTheme("ef2b46f3-8ebb-437e-a671-272e4990fbc8");
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var theme = client.getMeetingsClient().getTheme(
UUID.fromString("ef2b46f3-8ebb-437e-a671-272e4990fbc8")
);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = GetThemeRequest.Parse(new Guid("ef2b46f3-8ebb-437e-a671-272e4990fbc8"));
var response = await client.MeetingsClient.GetThemeAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$theme = $client->meetings()->getThemeById('9f6fe8ae-3458-4a72-b532-8276d5533e97');
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.get_theme('ef2b46f3-8ebb-437e-a671-272e4990fbc8')
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
theme = client.meetings.themes.info(theme_id: "49d900c8-372b-4c9e-b682-5601cbdc1f7a")
This will return a generic Vonage::Response object.
The Vonage::Response object de-serializes the returned JSON data into Vonage::Entity objects, and provides getter methods for the top level properties of that JSON data, for example:
theme.theme_name # => "blue-theme"
theme.main_color # => "#0000ff"
Example Response
{
"theme_id": "ef2b46f3-8ebb-437e-a671-272e4990fbc8",
"theme_name": "Theme1",
"domain": "VCP",
"account_id": "123ab4cd",
"application_id": "921a6f5b-1f94-49f4-8107-26f0c75fc6e7",
"main_color": "#12f64e",
"short_company_url": "short-url",
"brand_text": "Brand",
"brand_image_colored": "branded-image-colored",
"brand_image_white": "branded-image-white",
"branded_favicon": "branded-favicon",
"brand_image_colored_url": "branded-image-colored-url",
"brand_image_white_url": "branded-image-white-url",
"branded_favicon_url": "branded-favicon-url"
}
Add a Theme to a Room
A theme can be applied to a Long Term room upon room creation or update.
Room Creation
https://api-eu.vonage.com/v1/meetings/rooms
This example will create a long term meeting room with the orange theme:
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
await meetingsClient.createRoom({
type: MeetingType.LONG_TERM,
displayName: "New Meetings Room",
availableFeatures: {
isRecordingAvailable: true,
},
themeId: "e8b1d80b-8f78-4578-94f2-328596e01387",
});
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var room = MeetingRoom.builder("New Meeting Room")
.type(RoomType.LONG_TERM)
.expiresAt(EXPIRATION_DATE)
.themeId(UUID.fromString(
"e8b1d80b-8f78-4578-94f2-328596e01387"
))
.build();
client.getMeetingsClient().createRoom(room);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meetings Room")
.AsLongTermRoom(expirationDate)
.WithThemeId("e8b1d80b-8f78-4578-94f2-328596e01387")
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$room = (new Vonage\Meetings\Room())->fromArray([
'display_name' => 'New Meeting Room',
'type' => 'long_term',
'expires_at' => '2024-07-10 15:00:00.000',
'theme_id' => '49d900c8-372b-4c9e-b682-5601cbdc1f7a'
]);
$createdRoom = $client->meetings()->createRoom($room);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.create_room({
'display_name': 'New Meeting Room',
'type': 'long_term',
'expires_at': '2024-07-10 15:00:00.000',
'theme_id': '49d900c8-372b-4c9e-b682-5601cbdc1f7a',
})
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
room = client.meetings.rooms.create(
display_name: "New Meeting Room",
type: "long_term",
expires_at: "2024-07-10 15:00:00.000",
theme_id: "49d900c8-372b-4c9e-b682-5601cbdc1f7a"
)
Room Update
PATCH: https://api-eu.vonage.com/v1/meetings/rooms/{ROOM_ID}
To update a room's theme, you'll need the theme_id and room ID:
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
const room = await meetingsClient.getRoom("9f6fe8ae-3458-4a72-b532-8276d5533e97");
room.themeId = "e8b1d80b-8f78-4578-94f2-328596e01387";
await meetingsClient.updateRoom("9f6fe8ae-3458-4a72-b532-8276d5533e97", room);
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var room = client.getMeetingsClient().updateRoom(
UUID.fromString("9f6fe8ae-3458-4a72-b532-8276d5533e97"),
UpdateRoomRequest.builder()
.themeId(UUID.fromString(
"e8b1d80b-8f78-4578-94f2-328596e01387"
))
.build()
);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = UpdateRoomRequest.Build()
.WithRoomId(new Guid("9f6fe8ae-3458-4a72-b532-8276d5533e97"))
.WithThemeId("e8b1d80b-8f78-4578-94f2-328596e01387")
.Create();
var response = await client.MeetingsClient.UpdateRoomAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$applicationTheme = $client->meetings()->updateRoom('9f6fe8ae-3458-4a72-b532-8276d5533e97' [
'update_details' => [
'theme_id' => 'e8b1d80b-8f78-4578-94f2-328596e01387',
]
]);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.update_room(
'9f6fe8ae-3458-4a72-b532-8276d5533e97',
{'update_details': {'theme_id': 'e8b1d80b-8f78-4578-94f2-328596e01387'}},
)
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
room = client.meetings.rooms.update(
room_id: "9f6fe8ae-3458-4a72-b532-8276d5533e97",
theme_id: "e8b1d80b-8f78-4578-94f2-328596e01387"
)
Remove a Theme from a Room
PATCH: https://api-eu.vonage.com/v1/meetings/rooms/{ROOM_ID}
In order to remove a theme for a room, update the room using a PATCH request and the room ID. Update the theme_id with null to remove the theme and use the default theme instead.
Please note that only long term rooms can be updated.
Example Request
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
await meetingsClient.updateRoom(ROOM_ID, "9f6fe8ae-3458-4a72-b532-8276d5533e97");
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var room = client.getMeetingsClient().updateRoom(
UUID.fromString("9f6fe8ae-3458-4a72-b532-8276d5533e97"),
UpdateRoomRequest.builder().themeId(null).build()
);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = UpdateRoomRequest.Build()
.WithRoomId(new Guid("9f6fe8ae-3458-4a72-b532-8276d5533e97"))
.WithThemeId(null)
.Create();
var response = await client.MeetingsClient.UpdateRoomAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$room = $client->meetings()->updateRoom(
'9f6fe8ae-3458-4a72-b532-8276d5533e97',
[
'update_details' => [
'theme_id' => ''
]
]
);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.update_room(
'9f6fe8ae-3458-4a72-b532-8276d5533e97',
{'update_details': {'theme_id': None}}
)
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
room = client.meetings.rooms.update(
room_id: "9f6fe8ae-3458-4a72-b532-8276d5533e97",
theme_id: nil
)
Set Theme as Default
PATCH: https://api-eu.vonage.com/v1/meetings/applications
A theme can be set as the default theme for the application, meaning that every room created will automatically use the default theme. To do this, first create a theme, and then add it as the default_theme_id in an object called update_details.
Example Request
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
await meetingsClient.setDefaultTheme("e8b1d80b-8f78-4578-94f2-328596e01387");
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var application = client.getMeetingsClient().updateApplication(
UpdateApplicationRequest.builder()
.defaultThemeId(UUID.fromString(
"e8b1d80b-8f78-4578-94f2-328596e01387"
))
.build()
);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = UpdateApplicationRequest.Parse(new Guid("e8b1d80b-8f78-4578-94f2-328596e01387"));
var response = await client.MeetingsClient.UpdateApplicationAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$updatedApplication = $client->meetings()->updateApplication([
'update_details' => [
'default_theme_id' => 'e8b1d80b-8f78-4578-94f2-328596e01387'
]
]);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.update_application_theme('e8b1d80b-8f78-4578-94f2-328596e01387')
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
client.meetings.applications.update(default_theme_id: "e8b1d80b-8f78-4578-94f2-328596e01387")
Example Response
{
"application_id":"3db604ce-b4c0-48f4-8b82-4a03ac9f6bk7",
"account_id":"69b2a6d2",
"default_theme_id":"e8b1d80b-8f78-4578-94f2-328596e01387"
}
Delete a Theme
https://api-eu.vonage.com/v1/meetings/themes/{THEME_ID}
To delete a theme, send a DELETE request using the theme ID. Please note, a theme that is set to default or is currently in use by any room cannot be deleted, and will return an error.
In order to delete a theme that is in use, you must remove it from each room that is using it by finding all rooms using that theme and removing the theme.
Alternatively, if you wish to override and delete the theme without manually removing it, add a query parameter of force=true. The default theme will now be applied to all the rooms that were using this theme.
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
await meetingsClient.deleteTheme("e8b1d80b-8f78-4578-94f2-328596e01387", true);
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var themeId = UUID.fromString("e8b1d80b-8f78-4578-94f2-328596e01387");
client.getMeetingsClient().deleteTheme(themeId, true);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = DeleteThemeRequest.Build()
.WithThemeId(new Guid("e8b1d80b-8f78-4578-94f2-328596e01387"))
.WithForceDelete()
.Create();
var response = await client.MeetingsClient.DeleteThemeAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$client->meetings()->deleteTheme('9f6fe8ae-3458-4a72-b532-8276d5533e97', true);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
client.meetings.delete_theme('e8b1d80b-8f78-4578-94f2-328596e01387', force=True)
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
client.meetings.themes.delete(
theme_id: "49d900c8-372b-4c9e-b682-5601cbdc1f7a",
force: true
)
Get All Rooms with a Given Theme
https://api-eu.vonage.com/v1/meetings/themes/{THEME_ID}/rooms
To retrieve a list of rooms using a particular theme, send a
theme_id:Example Request
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
const rooms = meetingsClient.getRoomsForTheme("e8b1d80b-8f78-4578-94f2-328596e01387");
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var rooms = client.getMeetingsClient().searchRoomsByTheme(
UUID.fromString("e8b1d80b-8f78-4578-94f2-328596e01387")
);
var client = new VonageClient(credentials);
var request = GetRoomsByThemeRequest.Build()
.WithThemeId(new Guid("e8b1d80b-8f78-4578-94f2-328596e01387"))
.Create();
var response = await client.MeetingsClient.GetRoomsByThemeAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$rooms = $client->meetings()->getRoomsByThemeID('e8b1d80b-8f78-4578-94f2-328596e01387');
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.list_rooms_with_theme_id('e8b1d80b-8f78-4578-94f2-328596e01387')
client = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: File.read(ENV["VONAGE_APPLICATION_PRIVATE_KEY_PATH"])
)
rooms_list = client.meetings.themes.list_rooms(theme_id: "49d900c8-372b-4c9e-b682-5601cbdc1f7a")
This will return an object of the Vonage::Meetings::Rooms::ListResponse class.
This class defines an each method, allowing you to iterate through the _embedded array returned in ther response. For example:
rooms_list.each {|room| puts room.display_name}
# => "Room One"
# => "Room Two"
The class also includes Enumerable, so you can call any instance method from that module on the object. For example:
instant_rooms = rooms_list.select {|room| room.type == "instant"}
This will return a list of all rooms using this theme.