进阶 docs.flarum.org 2026-10-15 14:50:53 · 19 阅读
第31章 Akismet 扩展
版本:2.x Akismet
Akismet 扩展(flarum/akismet)将新发布的帖子与 Akismet 第三方反垃圾服务进行比对。被判定为垃圾信息的帖子不会直接发布,而是先暂存,等待管理员审核。该扩展为内置组件,默认处于禁用状态。
在填入 API 密钥前,该扩展不会执行任何操作。Akismet 需要来自其账户的 API 密钥。密钥保存之前,所有帖子均不会被检测,且系统内也没有任何提示告知这一状态。
要求
一个 Akismet API 密钥。在 akismet.com 注册即可获取,平台提供免费和付费两种方案,请根据论坛规模选择合适的档位。
Approval 和 Flags 扩展:这两个扩展同样内置且默认开启。Akismet 依赖 Approval 实现帖子暂存,管理员则通过 Flags 完成审核。
服务器必须能够向 rest.akismet.com 发起 HTTPS 出站请求。
安装
此扩展随 Flarum 一同发行,但默认未启用。请在管理后台的扩展页将其开启,并在设置项中填入 API 密钥。
如果你的安装环境中缺少此扩展,请按常规流程安装:
composer require flarum/akismet
php flarum migrate
php flarum cache:clear
设置 设置 默认 说明 API Key 空 你的 Akismet API 密钥。保存时会向 Akismet 验证,无效的密钥会被拒绝。如果当时无法连接 Akismet,密钥会不做验证直接保存。 Automatically delete blatant spam 关闭 当 Akismet 确定某条帖子是垃圾信息时,直接隐藏而不是留待审核。参见 Blatant spam。 权限 该扩展在管理后台 Permissions 页面的 Create 下新增一项权限。 权限 说明 Bypass Akismet 这些组内成员发的帖子不会发送给 Akismet。适用于受信任的组和工作人员。管理员始终跳过检查。 帖子如何被检查 每条新评论,以及每次修改评论内容的编辑,都会在保存前发送给 Akismet。对于讨论的首帖,讨论标题会和内容一起被检查。编辑也会被检查,因为垃圾信息发布者有时会先发一条无害内容,之后再通过编辑塞入垃圾信息。 如果 Akismet 判定帖子不是垃圾信息,它会正常发布。如果判定为垃圾信息: 帖子会被留待审核,只有作者和管理员能看到。如果是讨论的首帖,整个讨论都会被扣留。 帖子会被加上标记,注明 Akismet 判定为垃圾信息的原因。 明显的垃圾信息(Blatant spam) 有时 Akismet 有足够把握判定某条帖子可以直接丢弃、无需审核。开启 Automatically delete blatant spam 后,这类帖子会被立即隐藏——如果是讨论首帖,整个讨论也会一并隐藏,并且不会产生标记。 尽管这个设置名叫“删除”,这些帖子只是被隐藏,并不会被永久删除,管理员仍然可以找到并恢复它们。 当无法连接 Akismet 时 如果 Akismet 三秒内没有响应,或返回错误,帖子会不做检查直接发布,因此 Akismet 故障不会影响用户发帖。Flarum 的日志中会写入一条以 [flarum/akismet] 开头的警告。如果你发现本应被 Akismet 拦下的垃圾信息通过了,请检查日志。 审核被扣留的帖子 被扣留的帖子会出现在论坛头部的 Flagged Posts 列表中,供拥有 Flags 扩展 View flagged posts 权限的用户查看。要处理这些帖子,管理员还需要 Approval 扩展的 Approve posts 权限。 在 Akismet 扣留的帖子上,Approve 按钮会显示为 Not Spam: Not Spam 会发布该帖子,并告知 Akismet 它判断错了。 隐藏该帖子则向 Akismet 确认它确实是垃圾信息。 Akismet 会利用这些反馈不断提升对你论坛垃圾信息的识别能力。只有 Akismet 扣留的帖子才会被上报。未经检查通过的垃圾信息,或因其他原因被扣留的帖子,不会被上报。 发送给 Akismet 的数据 为了检查帖子,该扩展会向 Akismet 发送: 帖子内容,首帖还包括讨论标题。 作者的昵称和邮箱地址。 发帖时的 IP 地址。 如果是通过浏览器发帖,还包括浏览器的 User Agent 和来源页面。 论坛地址、讨论链接和论坛的默认语言。 Akismet 由 Automattic 运营,位于你的论坛之外。请在论坛的隐私政策中提及它,就像提及其他处理会员数据的服务一样。另请参见 GDPR 扩展。 调试模式 当 Flarum 处于调试模式时,请求会被标记为测试。Akismet 仍会检查这些帖子,但不会从中学习。
php flarum migrate
php flarum cache:clear
设置 设置 默认 说明 API Key 空 你的 Akismet API 密钥。保存时会向 Akismet 验证,无效的密钥会被拒绝。如果当时无法连接 Akismet,密钥会不做验证直接保存。 Automatically delete blatant spam 关闭 当 Akismet 确定某条帖子是垃圾信息时,直接隐藏而不是留待审核。参见 Blatant spam。 权限 该扩展在管理后台 Permissions 页面的 Create 下新增一项权限。 权限 说明 Bypass Akismet 这些组内成员发的帖子不会发送给 Akismet。适用于受信任的组和工作人员。管理员始终跳过检查。 帖子如何被检查 每条新评论,以及每次修改评论内容的编辑,都会在保存前发送给 Akismet。对于讨论的首帖,讨论标题会和内容一起被检查。编辑也会被检查,因为垃圾信息发布者有时会先发一条无害内容,之后再通过编辑塞入垃圾信息。 如果 Akismet 判定帖子不是垃圾信息,它会正常发布。如果判定为垃圾信息: 帖子会被留待审核,只有作者和管理员能看到。如果是讨论的首帖,整个讨论都会被扣留。 帖子会被加上标记,注明 Akismet 判定为垃圾信息的原因。 明显的垃圾信息(Blatant spam) 有时 Akismet 有足够把握判定某条帖子可以直接丢弃、无需审核。开启 Automatically delete blatant spam 后,这类帖子会被立即隐藏——如果是讨论首帖,整个讨论也会一并隐藏,并且不会产生标记。 尽管这个设置名叫“删除”,这些帖子只是被隐藏,并不会被永久删除,管理员仍然可以找到并恢复它们。 当无法连接 Akismet 时 如果 Akismet 三秒内没有响应,或返回错误,帖子会不做检查直接发布,因此 Akismet 故障不会影响用户发帖。Flarum 的日志中会写入一条以 [flarum/akismet] 开头的警告。如果你发现本应被 Akismet 拦下的垃圾信息通过了,请检查日志。 审核被扣留的帖子 被扣留的帖子会出现在论坛头部的 Flagged Posts 列表中,供拥有 Flags 扩展 View flagged posts 权限的用户查看。要处理这些帖子,管理员还需要 Approval 扩展的 Approve posts 权限。 在 Akismet 扣留的帖子上,Approve 按钮会显示为 Not Spam: Not Spam 会发布该帖子,并告知 Akismet 它判断错了。 隐藏该帖子则向 Akismet 确认它确实是垃圾信息。 Akismet 会利用这些反馈不断提升对你论坛垃圾信息的识别能力。只有 Akismet 扣留的帖子才会被上报。未经检查通过的垃圾信息,或因其他原因被扣留的帖子,不会被上报。 发送给 Akismet 的数据 为了检查帖子,该扩展会向 Akismet 发送: 帖子内容,首帖还包括讨论标题。 作者的昵称和邮箱地址。 发帖时的 IP 地址。 如果是通过浏览器发帖,还包括浏览器的 User Agent 和来源页面。 论坛地址、讨论链接和论坛的默认语言。 Akismet 由 Automattic 运营,位于你的论坛之外。请在论坛的隐私政策中提及它,就像提及其他处理会员数据的服务一样。另请参见 GDPR 扩展。 调试模式 当 Flarum 处于调试模式时,请求会被标记为测试。Akismet 仍会检查这些帖子,但不会从中学习。