您好,
我正在将 Discourse 集成到另一个应用程序中,并试图通过 API 来了解某人是否有任何新的聊天活动。如果有任何新消息,我只想显示一个红点。
更具体地说,我试图利用客户在“chat_header_indicator_preference”中设置的任何偏好设置,目前我将其设置为“all_new”,我认为这应该会显示我所属频道中的任何新消息以及未读提及/私信。
我曾希望通过访问 /session/current.json 能够在那里看到一些有用的信息,但没有找到任何有用的东西。
是否有任何 API 端点可以让我根据用户的 chat_header_indicator_preference 来了解是否有新消息??
j.jaffeux
(Joffrey Jaffeux)
3
/chat/api/me/channels 和跟踪密钥包含您需要的所有信息,我们也许有一天会创建一个更专业的终结点
1 个赞
感谢 @j.jaffeux。我正在查看 /chat/api/me/channels,并在跟踪中看到我可以遍历所有频道并查看是否有任何频道的 unread_count > 0,这很有帮助。
但这似乎与用户的 chat_header_indicator_preference 无关,也无法告诉我用户是否有任何私信或提及。
理论上,我可以尝试通过首先检查用户是否已将该设置为“all_new”,然后检查其频道的 unread_counts 是否 > 0,如果这些都为 0,则检查未读私信/提及来重新创建 chat_header_indicator_preference 的逻辑。
但我希望有更好的方法……(而且我也不知道如何获取未读私信/提及的第二部分)。
非常感谢任何帮助/指导。
1 个赞
我正试图在我的应用程序中显示一个徽章,以指示某人是否有新的聊天活动。
在“偏好设置” → “聊天”下,有一个名为“chat_header_indicator_preference”的设置,它有以下选项:
用户应该只根据此偏好设置看到新活动的红色徽章。如果有人设置了“所有新消息”,我希望这意味着如果他们在任何频道中有新活动,或者他们收到了提及或直接消息,就会显示一个徽章。
您向我展示了如何循环遍历所有频道并查看是否有未读消息,但 1) 这与此偏好设置无关 2) 这无助于我了解他们是否有任何直接消息或提及。
理想情况下,我希望找到一个端点,可以根据客户的 chat_header_indicator_preference 来显示徽章。
如果那不可能,那么听起来我需要首先检查他们是否在 chat/api/me/channels 的“跟踪部分”中有未读消息,然后检查第二个位置以查看他们是否有直接消息/提及。
我不知道第二个位置在哪里,但希望这里的其他人能给我指明正确的方向。
这有意义吗?
1 个赞
谢谢……我之前没注意到。
在跟踪中,有什么方法可以知道哪些是私信频道,哪些是公开频道吗?
如果用户的“chat_header_indicator_preference”设置为“Direct Messages and Mentions”(私信和提及),我将不希望为频道中的常规新消息显示徽章。
1 个赞
j.jaffeux
(Joffrey Jaffeux)
9
是的,您有 direct_message_channels 和 public_channels,因此您可以在跟踪中通过 ID 进行查找。
2 个赞
system
(system)
关闭
10
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.