介绍发现热门话题

如果您不熟悉 Discourse Discover,请查看 此主题

我们最近为 Discourse Discover 添加了一个酷炫的新功能:您可以在您关心的主题中,查看跨 Discourse 社区的热门话题讨论。这在技术上是一个简单的改动,但对各类受众都非常实用。

它是如何工作的?

对于已纳入 Discover 的网站,我们现在运行一个爬虫程序,抓取最新最活跃的话题,并使用一个简单的算法按主题对这些话题进行分组。Discourse 社区涵盖众多主题,这为公众提供了一个窗口,让他们可以看到人们正在讨论哪些主题。

很酷,我在哪里可以看到这个功能?

目前,该功能已在我们 iOS 移动应用 DiscourseHub 中上线,并即将推出 Android 版本以及网站 discover.discourse.com

您可以在以下视频和照片中抢先预览:

我可以在我的应用/网站上使用这个功能吗?

当然可以。我们将其构建为一个简单的 API,可供任何客户端调用。您只需使用以下两个端点:

  • https://discover.discourse.com/hot-topics-tags.json - 返回需要获取的主题/标签:
  • https://discover.discourse.com/hot-topics.json?tag=<name>
    • tag 参数是必需的 — 没有“所有标签”模式;其他任何值都会返回 400 错误
    • 您可以传递 page 参数以获取更多结果 – 它基于 0 索引,默认为 0,最多支持 5 页结果。
示例

首先获取可用的标签:

λ  curl https://discover.discourse.com/hot-topics-tags.json
{
  "tags": [
    "ai",
    "finance",
    "apple",
    "automation",
    "media",
    "research",
    "smart-home",
    "linux",
    "open-source",
    "webdev",
    "health",
    "gaming",
    "audio",
    "devops",
    "crypto",
    "mapping",
    "technology",
    "support",
    "interests",
    "programming"
  ]
}

然后,选择一个标签。例如,我将使用 ai,并将其传递给第二个端点:

curl "https://discover.discourse.com/hot-topics.json?tag=ai"

这将返回类似以下内容:

"hot_topics": [
    {
      "id": 431863,
      "title": "Deepseek V4 released",
      "url": "https://forums.developer.nvidia.com/t/deepseek-v4-released/367696",
      "excerpt": "I think people with 4 DGX Spark are good to go.  Rest of us needs to wait for quantized version.",
      "like_count": 143,
      "reply_count": 76,
      "views": 5891,
      "score": 41.6296558464954,
      "image_url": null,
      "remote_created_at": "2026-04-24T03:21:32.475Z",
      "community_name": "NVIDIA Developer Forums",
      "community_url": "https://forums.developer.nvidia.com",
      "community_logo_url": "https://canada1.discourse-cdn.com/discover/original/2X/b/bb908321f62e7dd8c9e87fb8750e242c2e4827d9.png"
    },
    {
      "id": 564616,
      "title": "Webhook URL shows localhost instead of domain (self-hosted n8n)",
      "url": "https://community.n8n.io/t/webhook-url-shows-localhost-instead-of-domain-self-hosted-n8n/292267",
      "excerpt": "Hello, \nI am trying to receive webhook events from Bitrix24 CRM in my self-hosted n8n. \nPreviously it worked on another cloud n8n account, but now on my current hosted instance the Webhook node generates URLs starting with localhost. \nWebhook method is currently set to GET. I also tested POST, but it still does not receive data. \nBecause of that, Bitrix24 does not seem to reach the webhook. \nIs it&hellip;",
      "like_count": 13,
      "reply_count": 8,
      "views": 32,
      "score": 41.1415045485148,
      "image_url": null,
      "remote_created_at": "2026-04-28T12:16:38.826Z",
      "community_name": "N8n Community",
      "community_url": "https://community.n8n.io",
      "community_logo_url": "https://canada1.discourse-cdn.com/discover/original/2X/d/d34907e298b033e3eb94bcaff8fd8c82b1eb66e7.png"
    },
    // ...

然后您可以列出这些话题。这些端点会在一天中不断更新,以确保每个主题的结果都是最新的。

6 个赞

测试版构建有希望续期吗?

如果还能加入 iOS 26 风格的标签栏就更好了
1 个赞

那是一个旧的构建轨道,已于 2025 年 8 月过期。当前的生产构建是最新版本,与以下 TestFlight 构建一致:Join the Discourse Hub beta - TestFlight - Apple

感谢提醒。仅让标签栏呈现 iOS 26 风格而不更新应用的其余部分以保持一致,这颇具挑战性。而更新整个应用则涉及范围相当广泛。

我们很好奇苹果在几周后即将发布的 iOS 27 测试版中会怎么做。iOS 26 的磨砂玻璃风格并未获得太多好评。

2 个赞

谢谢,我点了两次,第二次更新按钮就出现了。

我唯一确定的是,他们将移除旧版 iOS 18 的键盘样式,但该应用似乎已经采用了 26 版本的样式。其他都只是猜测,不过我一直很喜欢玻璃风格,一上线就下载了,也始终不同意人们对它的抱怨,因为在我看来它看起来没问题。不过,技术债务的问题确实可以理解 :slight_smile:

1 个赞

这个时机很有趣,因为我刚刚花了一周时间,将类似的概念重构到我的原生应用中:一个首页故事栏,用于展示单一社区内最活跃的讨论,并通过自定义插件端点实时拉取排名内容。虽然与您构建的功能范围不同(单一社区 vs. 跨网络发现),但显然背后的直觉是一致的。很期待看到 API 端点将如何演进。

1 个赞