Discourse 聊天

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

功能

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

配置

初始设置

聊天功能默认对所有托管站点启用,但如果尚未启用,你可以前往 /admin/plugins 并切换启用该插件:

默认情况下,聊天功能仅对 staff 组可用,但你可以通过将它们添加到 chat allowed groups 设置中来添加更多组。

频道保留

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

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

其他站点设置

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

访问频道和创建新频道

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

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

创建频道

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

然后,从页面右上角选择 新频道。选择一个要关联的类别,给它起个名字,选择一个 emoji,并添加一个可选描述以显示在浏览频道页面上。

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

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

线程

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

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

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

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

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

加入频道

你可以从 “浏览频道” 页面预览和加入频道。在此页面上,你可以查看所有对你可见且有资格加入的频道。

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

@提及 单个用户或组将提供邀请他们加入频道的选项(如果他们还不是参与者)。要以这种方式邀请组,组 /manage/interaction 页面上的 “谁可以 @提及 此组?” 必须设置为除 “没有人” 以外的内容。

开始直接消息或群组聊天

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

:information_source: 如果你意外退出了直接消息,与相同的人/人们开始新聊天将把你链接回之前发送的消息。

聊天消息选项

与主题类似,聊天消息支持:

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

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

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

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

自动将用户添加到频道

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

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

搜索

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

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

聊天信息面板

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

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

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

  • 成员 选项卡让用户可以看到房间里还有谁(成员列表和总计数)。它包含一个过滤器,以便他们可以使用搜索。

image

聊天偏好

启用聊天后,用户会在偏好设置中看到新的 /preferences/chat 页面。在此页面上,他们可以选择不使用聊天、选择不使用 @here@all 通知、管理聊天电子邮件通知或选择桌面声音。

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

关闭、删除和归档频道

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

要归档频道,必须启用 chat allow archiving channels 设置,并且频道必须已关闭。然后你可以从频道设置中选择 “归档频道”,系统将显示一个模态框,询问你是否要创建新主题或使用现有主题进行归档过程:

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

集成

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

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

创建 Webhook 的用户界面位于 管理 > 插件 > 聊天 > 新建传入 Webhook。你可以为每个 Webhook 配置名称、描述、用户名(发布消息)、目标频道和 emoji。

: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 个赞