Nextcloud Talk is the chat, video and audio conferencing solution in Nextcloud. Apps can access Talk capabilities through a public API.
All communication from an app to the Talk backend is handled through a broker \OCP\Talk\IBroker
. :ref:`Inject <dependency-injection>` the Talk broker into your class to make use of it.
Talk is an optional app. It has to be installed and enable to be used.
<?php
/** @var \OCP\Talk\IBroker $broker */
if ($broker->hasBackend()) {
// Do something with it
} else {
// Hide Talk integration from a user or use other communication channels, if applicable
}
A new conversation needs a name and at least one moderator. By default this conversation will be private.
<?php
/** @var \OCP\Talk\IBroker $broker */
/** @var \OCP\IUser $alice */
/** @var \OCP\IUser $bob */
$conversation = $broker->createConversation(
'Weekly 1:1',
[$alice, $bob]
);
It's possible to adjust the defaults.
<?php
/** @var \OCP\Talk\IBroker $broker */
/** @var \OCP\IUser $alice */
/** @var \OCP\IUser $bob */
$options = $broker->newConversationOptions();
$conversation = $broker->createConversation(
'Weekly 1:1',
[$alice, $bob],
$broker->newConversationOptions()->setPublic()
);
A conversation can be deleted by id (token).
<?php
/** @var \OCP\Talk\IBroker $broker */
$broker->deleteConversation('abc123');