Whitelabeling: Themenmanagement für Besprechungsräume
Verwenden Sie die Meetings API, um benutzerdefinierte Themen mit verschiedenen Farben, Logos und Text zu erstellen. Themen können auf einen Raum, einige Räume oder alle Besprechungsräume in Ihrer Anwendung angewendet werden.
Voraussetzungen
Vonage Developer Account: Wenn Sie noch keinen Account haben, melden Sie sich kostenlos auf der Website Vonage Developers Account.
Application ID und Geheimnis: Sobald Sie bei der Website eingeloggt sind Vonage API Dashboardklicken Sie auf Applications und erstellen Sie eine neue Anwendung. Klicken Sie auf
Generate public and private keyund zeichnen Sie den privaten Schlüssel auf. Sie verwenden den privaten Schlüssel zusammen mit der Application ID, um Erzeugen eines JSON-Web-Tokens (JWT). Weitere Einzelheiten zu JWTs finden Sie unter Authentifizierung. Vergewissern Sie sich auch, dass die Meetings API für Ihre Anwendung unter "Fähigkeiten" aktiviert ist:

Ein Thema erstellen
https://api-eu.vonage.com/v1/meetings/themes
Körper Inhalt
Den folgenden Feldern können in der POST-Anfrage Werte zugewiesen werden:
| Feld | Erforderlich? | Beschreibung |
|---|---|---|
theme_name | Nein | Der Name des Themas (muss eindeutig sein). Bei Null wird automatisch eine UUID generiert. |
main_color | Ja | Die Hauptfarbe, die für den Besprechungsraum verwendet werden soll. |
brand_text | Ja | Der Text, der auf der Homepage des Treffens erscheint, wenn kein Markenbild vorhanden ist. |
short_company_url | Nein | Die URL, die jeden Besprechungsraum mit diesem Thema darstellt (muss eindeutig sein). |
Beispiel-Anfrage
Im folgenden Beispiel wird ein Thema mit Orange als Hauptfarbe und dem Anzeigetext "Orange" erstellt. Der Name des Themas wird intern verwendet und muss für jedes Thema eindeutig sein.
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);
$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'
]
]);
Beispiel Antwort
{
"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
}
Beachten Sie, dass die Nullwerte für Themenbilder stehen, die mit der Option Image-Management-Prozess. Die URLs, die generiert werden, sobald die Bilder hochgeladen sind.
Aktualisieren eines Themas
PATCH: https://api-eu.vonage.com/v1/meetings/themes/:theme_id
Die Eigenschaften des Themas, die aktualisiert werden können, sind dieselben wie die, die bei erstellen.. Alle Bilder müssen über das Menü Image-Management-Prozess.
Um Eigenschaften zu aktualisieren, benötigen Sie die theme_id und ein Objekt namens update_details:
Beispiel-Anfrage
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()
);
$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'
]
]);
Beispiel Antwort
{
"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"
}
Ein Thema finden
https://api-eu.vonage.com/v1/meetings/themes/:theme_id
Senden Sie eine
Beispiel-Anfrage
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")
);
$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');
Dies gibt eine generische Vonage::Response Objekt.
Die Vonage::Response Objekt de-serialisiert die zurückgegebenen JSON-Daten in Vonage::Entity Objekten und bietet Getter-Methoden für die Top-Level-Eigenschaften dieser JSON-Daten, zum Beispiel:
Beispiel Antwort
{
"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"
}
Einem Raum ein Thema geben
Ein Thema kann angewendet werden auf ein Langfristiges Zimmer bei der Erstellung oder Aktualisierung eines Raums.
Raumgestaltung
https://api-eu.vonage.com/v1/meetings/rooms
Dieses Beispiel wird einen langfristigen Sitzungsraum schaffen mit dem Thema Orange:
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);
$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);
Zimmer-Update
PATCH: https://api-eu.vonage.com/v1/meetings/rooms/{ROOM_ID}
Um das Thema eines Raums zu aktualisieren, benötigen Sie die theme_id und Zimmer-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()
);
$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',
]
]);
Ein Thema aus einem Raum entfernen
PATCH: https://api-eu.vonage.com/v1/meetings/rooms/{ROOM_ID}
Um ein Thema für einen Raum zu entfernen, aktualisieren Sie den Raum mit einer PATCH Anfrage und die Raum-ID. Aktualisieren Sie die theme_id mit null um das Thema zu entfernen und stattdessen das Standardthema zu verwenden.
Bitte beachten Sie, dass nur Langzeitzimmer aktualisiert werden können.
Beispiel-Anfrage
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()
);
Thema als Standard festlegen
PATCH: https://api-eu.vonage.com/v1/meetings/applications
Ein Thema kann als Standardthema für die Anwendung festgelegt werden, was bedeutet, dass jeder erstellte Raum automatisch das Standardthema verwendet. Erstellen Sie dazu zunächst ein Thema und fügen Sie es dann als das default_theme_id in einem Objekt namens update_details.
Beispiel-Anfrage
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()
);
Beispiel Antwort
{
"application_id":"3db604ce-b4c0-48f4-8b82-4a03ac9f6bk7",
"account_id":"69b2a6d2",
"default_theme_id":"e8b1d80b-8f78-4578-94f2-328596e01387"
}
Ein Thema löschen
https://api-eu.vonage.com/v1/meetings/themes/{THEME_ID}
Um ein Thema zu löschen, senden Sie eine DELETE-Anfrage unter Verwendung der Themen-ID. Bitte beachten Sie, dass ein Thema, das auf Standard eingestellt ist oder derzeit von einem Raum verwendet wird, nicht gelöscht werden kann und einen Fehler zurückgibt.
Um ein verwendetes Thema zu löschen, müssen Sie es aus jedem Raum, der es verwendet, entfernen, indem Sie alle Räume finden, die dieses Thema verwenden und Entfernen des Themas.
Wenn Sie das Thema außer Kraft setzen und löschen möchten, ohne es manuell zu entfernen, können Sie alternativ einen Abfrageparameter von force=true. Das Standardthema wird nun auf alle Räume angewendet, die dieses Thema verwendet haben.
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);
$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);
Alle Räume mit einem bestimmten Thema anzeigen
https://api-eu.vonage.com/v1/meetings/themes/{THEME_ID}/rooms
Um eine Liste der Räume abzurufen, die ein bestimmtes Thema verwenden, senden Sie eine
theme_id: Beispiel-Anfrage
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")
);
$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');
Dies gibt ein Objekt der Klasse Vonage::Meetings::Rooms::ListResponse Klasse.
Diese Klasse definiert eine each Methode, die es Ihnen ermöglicht, durch die folgenden Elemente zu iterieren _embedded Array, das in der Antwort zurückgegeben wird. Zum Beispiel:
Die Klasse umfasst außerdem Enumerable, so dass Sie jede Instanzmethode dieses Moduls für das Objekt aufrufen können. Zum Beispiel:
Dies gibt eine Liste aller Räume zurück, die dieses Thema verwenden.