Discourse 聊天

:discourse2: 摘要 Discourse Chat 为您的 Discourse 实例添加聊天功能。
:open_book: 安装指南 此插件已捆绑在 Discourse 核心中。无需单独安装该插件。

功能特性

正如我们在初始公告最新更新线程公告中提到的,此插件为您的 Discourse 添加了聊天功能,使其能够原生支持在线社区的长文本和短文本通信需求。

配置

初始设置

聊天功能默认在我们的托管站点上启用,但如果尚未启用,您可以前往 /admin/plugins 并开启插件:

默认情况下,聊天功能仅对工作人员组可用,但您可以通过将更多组添加到 chat allowed groups 设置中来增加可用组。

频道保留

默认情况下,频道配置为保留 90 天的消息,而直接消息和群组消息配置为永久保留消息,但这些是可配置的站点设置:

  • chat channel retention days(默认 90 天)
    选择保留频道聊天消息的时间长度
  • chat dm retention days(默认永久)
    选择保留直接消息和群组消息频道中的聊天消息的时间长度

其他站点设置

其他站点设置允许您配置一组默认表情反应以及一系列安全功能(例如每秒最大聊天消息数、最小消息长度、静音持续时间以及是否允许上传)。

访问频道和创建新频道

启用插件后,搜索图标旁边的标题栏中会出现一个对话气泡,点击它将打开您的全屏聊天窗口,您可以在其中访问默认频道并开始新的个人聊天。要从每个频道内部导航回全屏聊天窗口,请使用左上角的 < 图标。

使用任何聊天窗口上的 Screenshot 2022-06-24 at 5.52.54 PM 按钮,您可以在全屏模式和抽屉模式之间切换。

创建频道

要创建新频道(仅限工作人员),点击频道侧边栏中的 :pencil: 图标,前往 /chat/browse/open

然后,从页面右上角选择 New channel。选择一个要关联的类别,为其命名,添加一个表情符号,并添加一个可选的描述以显示在浏览频道页面上。

一个类别可以关联多个频道,并且可以随时添加更多频道。由于频道始终与类别链接,您可以依赖现有的类别权限来自动限制谁可以访问该特定对话。

:bulb: 想要一个仅用于您的 TL3+ 用户的频道?那么为您的 #lounge 类别创建一个新频道即可实现。

线程

创建频道时可以启用线程,或者稍后在频道设置页面中启用:

当成员在启用了线程的频道中回复聊天消息时,将打开一个线程侧边栏,并在主频道流中的原始消息下方显示线程中最新消息的摘录:

线程具有与主题类似的跟踪级别,可以通过线程右上角的 :bell: 图标进行更改:

线程创建者可以更改线程标题。在 Discourse 托管站点上,默认启用 AI 线程标题生成 :sparkles:

成员可以通过聊天侧边栏顶部的“我的线程”链接查看他们参与的所有线程:

加入频道

您可以从“浏览频道”页面预览和加入频道。在此页面上,您可以查看所有对您可见且符合加入条件的频道。

使用 @提及 邀请用户加入频道

@提及 单个用户或群组将为非参与者提供邀请他们加入频道的选项。要以这种方式邀请群组,群组 /manage/interaction 页面上的“谁可以 @提及 此群组?”必须设置为“Nobody”以外的值。

开始直接消息或群组聊天

要开始直接消息,请使用全屏聊天窗口中 DM 部分的 :heavy_plus_sign: 图标,并开始向收件人列表添加用户名。要离开直接消息或群组聊天,请点击频道名称旁边的 X 图标(仅限桌面端)。

:information_source: 如果您意外离开了直接消息,与同一人/多人开始新的聊天将链接回之前发送的消息。

聊天消息选项

与主题一样,聊天消息支持:

  • 编辑
  • 回复
  • 引用
  • Oneboxing
  • 反应
  • 书签
  • 删除

在编辑器中,您可以插入日期、上传文件和 GIF!聊天频道支持频道范围的 @here@all 提及,同时具备在线用户的绿色光环和 用户名正在输入… 指示器等存在性功能。

您还可以选择一个或多个聊天消息并“引用到主题”,将快速对话转换为 Discourse 主题以进行深入讨论,或按“复制”将消息复制到剪贴板,以便发布到现有主题或不同的聊天频道:

管理员和版主还可以选择聊天消息并将其移动到不同的频道。

自动将用户添加到频道

在创建新频道时,管理员现在会看到一个偏好设置,可将所有新用户和现有用户添加到该频道。使用此功能,管理员可以配置“默认频道”,以便自动包含特定用户组:

对于现有频道,管理员可以在频道设置中切换此行为。在所有情况下,都会出现确认对话框以指示添加的用户数量。

搜索

成员可以使用每个频道右上角的搜索图标搜索单个频道消息:

或者通过聊天侧边栏顶部的“搜索”链接搜索所有频道:

聊天信息面板

点击频道标题现在会将用户带到一个有用的信息面板,其中包含两个选项卡:

  • 设置选项卡将显示标题、描述和链接类别,以便用户获得每个频道所需的上下文。

    它还将允许您设置通知偏好(静音、桌面/移动推送通知)。对于管理员,此选项卡还包括自动加入模式切换、关闭频道和归档频道按钮。

  • 成员选项卡允许用户查看房间里还有哪些其他人(成员列表和总数)。它包含一个过滤器,以便他们可以使用搜索。

image

聊天偏好

启用聊天后,用户会在其偏好设置中看到一个新的 /preferences/chat 页面。在此页面上,他们可以选择退出聊天、自定义聊天体验并找到辅助功能设置。在 /preferences/notifications 页面上,他们可以找到所有与通知相关的设置,例如选择退出 @here@all 通知,并选择桌面声音。

/preferences/users 页面上的现有设置也适用于聊天直接消息,因此用户也可以关闭直接消息或静音或忽略其他单个用户。

关闭、删除和归档频道

管理员和版主可以从频道设置页面关闭或删除频道,可以通过点击频道标题栏中的频道名称来访问该页面。关闭的频道可以随时重新打开,但删除频道是不可逆的,因此有额外的确认检查。

要归档频道,必须启用 chat allow archiving channels 设置,并且频道必须处于关闭状态。然后您可以从频道设置中选择“归档频道”,系统将提示您是否要为主题归档过程创建新主题或使用现有主题:

归档会将聊天消息复制到聊天记录中,然后将其发布到所选主题中,显示如下:

集成

Discourse Chat 支持传入 Webhook,但尚不支持交互式机器人或斜杠命令。

:loudspeaker: 使用传入 Webhook 发送聊天消息 [Slack 兼容]

创建 Webhook 的 UI 可以在 Admin > Plugins > Chat > New incoming webhook 中找到。您可以为每个 Webhook 配置名称、描述、用户名(发布消息)、目标频道和表情符号。

:discourse2: 由我们托管? 聊天作为捆绑插件包含在内,人人可用。 :partying_face:

46 个赞
Now I've got Chat :speech_balloon: what do I do with Personal Messages?
Introducing Discourse Chat (BETA)
Add Option to Disable User-User Chat
Are chat messages hard deleted after the retention period?
Can I make chat visible for users who aren't logged in?
Use the api to post to chat channel?
Community Guide: Activating Lurkers
OP Contents on Progress Bar
Discourse Disorder
Channels, What are they?
In private chats AI uses threads
Improve editiability and visibility of Chat channel descriptions
Chat-like forums - open topic to the right from the list of topics
Chat settings missing?
Advice on a support forum
Using user cards to quickly view information about others
Discourse Gamification
Can anyone help me to add chat option of discord on forum?
Discourse Automation
Watched Words Reference Guide
Mattermost to Discourse Chat via incoming webhooks
Building a technical support chatbot
Can I auto-generate a post title
Discourse Livestream
Discourse Version 3.2
Discourse Chat Integrations
Chat button on usercard
3.0.0.beta15: Closing into Discourse 3.0 (with Sidebar, Chat, New Menus and more)
Discourse Calendar and Events
Hashtags are getting a #makeover
Migrating an existing community to Discourse
Is it possible to use Discourse Chat with the stable version?
What is the best way to run a support channel?
Try out the new sidebar and notification menus!
Discourse Livestream
Trust Level Permissions Reference
Request a howto auto post from a RSS feed to a chat channel by eg. using make.com?
Referencing types of review items created by plugins
Dedicated chat client?

一个帖子已合并到一个现有主题:使用聊天中的翻译器 API

4 篇帖子已拆分为新主题:从频道中移除用户

Discourse Chat 中添加允许 iframe 的功能

1 个赞

请请求添加基于 WebRTC 或 Jitsi 的免费音视频功能,用于个人和群组音视频通话,以极大地提高社区参与度。

如何允许匿名用户和访客参与私信和群组频道聊天?

如何阻止发送外部链接,以避免垃圾信息发送者在聊天中发送网址和链接?是否有任何过滤或禁止词语或正则表达式可以在聊天中进行过滤?

允许管理员和版主在所有私信和所有私人群组频道中发布群组公告。

2 个赞

Jitsi 已具备此功能:

我们发现通过我们自己的 Jitsi 实例,可以改进其 oneboxing 功能,使其更清楚地显示正在发生的情况。

2 个赞

2 篇帖子已拆分到新主题:NSFW 图像在聊天中模糊

这些消息在删除后是否会保留在数据库中?

1 个赞

我碰巧有一个不再活跃的聊天频道……所以我运行了一个数据浏览器查询。答案是否定的,它们已从数据库中完全删除。

7 个赞

是否有计划将语音聊天集成到此功能中?

3 个赞
2 个赞

您好!我正在探索聊天功能,并在聊天消息中添加了一些图片。图片显示正常,但我原以为点击图片时,它们会跳转到覆盖层并放大到原始尺寸,或者以某种方式使图片能够以更大的尺寸显示,但什么也没发生。这是我需要配置的吗?还是聊天不支持此功能?\n谢谢!

1 个赞

你好,欢迎你 @c0d3m3nt0r :slight_smile:

实际上,在 Chat: Make image lightbox match core 中还有另一份关于此问题的报告。有可能是某个非官方插件在某种程度上干扰了它。

据我们所知,它在这里的 meta 聊天中运行正常,点击聊天中的图片会将其放大。

你是否有任何特殊的设置/插件/配置可以帮助我们缩小范围?

2 个赞

作为管理员,能够像 Discord 一样重新排序侧边栏中的频道将非常棒。我曾考虑同时使用 Discourse 和 Discord,但我现在可以看到如何从 Discord 中移除很多东西并将其用于我的论坛,但拥有一个特定的频道顺序结构将是必不可少的。

2 个赞

我也认为我们应该能够创建不与类别关联的频道。当我们身处聊天室时,频道中似乎没有任何与类别相关联的内容,所以我认为没有必要将它们关联起来。

如果有人想为“游戏”创建一个论坛聊天室,这并不意味着他们需要为此创建一个类别,因为也许该类别根本不会有任何流量,而且它只是会使类别列表显得杂乱,而实际上没有必要。

2 个赞

您可以创建多个与单个类别关联的频道——无需为每个频道创建类别。

话虽如此,您并不是第一个指出类别关系似乎不必要的人。这是关于此的另一个近期功能主题:Make it easier to add people to channels through chat UX

4 个赞

[引述=“Dave McClure,帖子编号:178,主题编号:230881,用户名:mcwumbly”]
你可以创建多个频道,所有这些频道都与一个类别相关联——无需为每个频道创建一个类别。
[/引述]

在这种情况下,这个功能变得更加“过时”,因为它与类别之间没有真正的关联。
这也不算是个问题,但它只是另一个没有实际意义的东西。

但至少知道多个频道可以链接到同一个类别,避免了为了创建新频道而添加类别的情况。谢谢提供这个信息。

2 个赞

是的,该类别目前主要用作定义其中频道的访问控制。

因此,我上面链接的功能将使该部分变得过时。与此同时,这是该关系的主要用途。

3 个赞

只是为了确保我理解正确:你的意思是,例如,能够访问类别 A 的特定人群,是能够访问与该类别 A 相关联的一个或多个频道的人群吗?是这个意思吗?

如果是这样,因为我认为类别和频道应该是独立的功能,那么权限可以根据用户类型在频道级别进行设置,或者通过创建频道组来设置,这样是否合理?

我在想 Discord 的工作方式,其中每个频道都可以分配给不同的角色。

2 个赞

是的,正是如此。

5 个赞