ActivityPub 插件

当您在 Discourse 上删除一个 AP 帖子时,我们会向 Mastodon 发送一个删除内容的请求。由他们来处理。这应该可以正常工作,所以如果您能给我一些具体的例子,我可以尝试找出删除流程在何处未能按预期工作(即,是 Discourse 还是 Mastodon 的问题)。

之所以会这样,是因为 Mastodon 目前不允许更改句柄。这是您遇到的问题的根本原因。我一直在倡导这一点,并且有一个待处理的 Mastodon PR。当它被合并后,您就可以通过在 Discourse 中更改句柄来解决这个问题。

禁用句柄的用处在于,不会处理发送到该句柄的任何传入内容,也不会发送任何新内容。由其他平台决定如何处理您的现有内容,包括如何处理我们发送给它们的删除活动。

明白了。我们将来可能会添加此功能。

2 个赞

这就是句柄,它已禁用且未激活:uebergabe@community.uebergabe.de

我现在明白了……我做了一些测试帖子,他没有使用“uebergabe@community.uebergabe.de”,而是使用“christian@community.uebergabe.de”来发布它。但我从未在 Discourse 中创建过这个 Actor。
嗯。

这在“完整帖子”设置开启的情况下是符合预期的(在您的情况下必须是开启的)。内容会以用户的 Actor(即您)的名义发布。如果您想以分类 Actor 的名义发布,应该使用“首帖”。在这种情况下,只有每个主题的第一篇帖子会被发布。您可以在此视频中看到“首帖”方法的示例:

3 个赞

是的,就是这样。谢谢你的帮助。我当然看过那些视频,它们让我茅塞顿开,帮助我完成了配置。非常感谢!
所以,我当然不能删除这些我从未主动创建过的句柄。
仔细想想,我对此感觉不太好……如果每个人都像我一样使用它,就会有大量来自个人的内容片段永远无法删除。这会让互联网充斥着越来越少有意义的内容,或者我说得不对吗?
这不是你的错,我只是想了解,如果每个人都像我一样愚蠢,并且在互联网上发布永远不会被删除的测试帖子,会发生什么 :smiley:

不过,你可以删除这些帖子。当你删除一个帖子时,Discourse 会向 Mastodon 发送一个删除指令,Mastodon 应该会删除它的副本。如果这不起作用,请尝试恢复帖子并再次删除它。执行此操作时,请检查日志。

如我所说,你应该能够删除帖子本身,但除此之外,我真的不担心太多。Mastodon 是一个流媒体平台。你的测试帖子很快就会在内容流中消失。此外,当时是否还有其他人(除了你)关注你的账号?我在联邦宇宙中有数百个测试帖子,但没有任何影响 :slight_smile:

不过,请告诉我你删除帖子的进展。

3 个赞

我恢复了帖子,然后又删除了它们。
它们在 Mastodon 上可见。当我点击时,它会把我引向 discourse 上的已删除帖子。

为什么是小众

在我参与的 Discourse 社区中,我只能想到三个我希望关注某些类别,但又不希望关注整个 Discourse 的应用程序 Actor。

我有一个 RSS 阅读器,我通过 RSS 关注整个网站;ActivityPub 会提供更好的体验,尤其是在回复方面。

应用程序 Actor 是很难实现还是仅仅优先级不高?

跟踪整个实例意味着您将在 Mastodon feed 中看到该实例上的每一条帖子,形成一个连续的流。除非该实例的活动量很少,否则我敢打赌那将是一个小众用例。也许我会证明是错的,但仅凭表面来看,我认为这不会受欢迎。

您查看过日志吗?让我们确认一下我们是否将删除活动发送到了 Mastodon。

1 个赞

我认为,仍然有许多流量较低但绝对活跃的 Discourse 实例,它们仍然有多个类别。当然,meta 不是这些小型实例之一。:grin: 但在我个人管理的三个 Discourse 实例中,一个实例的流量非常高,以至于我甚至不会将它的许多类别放入我的 Mastodon feed 中,另外两个实例的流量足够低,以至于我肯定会更愿意关注整个站点。我还有一些我所属的实例,如果我有选项的话,我也会关注整个站点。

我并不是要求您改变优先级。只是分享另一种观点。

5 个赞

这应该在 Meta 上处于活动状态并正常运行吗?

访问 Preparing your community for behind-the-scenes header changes - Announcements - Discourse Meta 会出现“错误请求”,并且无法从我的实例中获取帖子。

浏览器向 AP 对象发出的请求应重定向到用户视图(https://meta.discourse.org/t/preparing-your-community-for-behind-the-scenes-header-changes/316549)。

是的,例如在你链接的帖子中。

这是你在一些 AP 平台上看到的“功能”(某种意义上)。我需要指出的是,ActivityPub 规范 提供了:

服务器 可以 使用 HTTP 内容协商,如 [RFC7231] 中定义的,来选择响应请求的数据类型,但 必须 在响应 application/ld+json; profile="https://www.w3.org/ns/activitystreams" 时提供 ActivityStreams 对象表示,并且在响应 application/activity+json 时也 应该 提供 ActivityStreams 表示。客户端 必须 指定一个 Accept 标头,其 application/ld+json; profile="https://www.w3.org/ns/activitystreams" 媒体类型才能检索活动。

另请参阅 Activity Streams 2.0 中的“序列化”。

AP 插件目前要求你发送一个 Accept 标头,其中包含“application/ld+json”或“application/activity+json”才能检索任何对象(即 Activity、Note 等)。我们将来可能会支持你所指的内容,但这在某种程度上是特定平台的“高级用户”功能。

1 个赞

当我在客户端查看帖子时,有一个醒目的按钮“分享 :arrow_right: 在浏览器中打开”,它会打开对象 URL :slight_smile:

获取错误页面:

您希望我向管理员索要与获取相关的日志吗?

我明白了!您正在使用什么客户端?

对象 ID 实际上并不适合作为普通用户在客户端中共享/复制的 URL。我们在 ActivityPub 状态模态框中提供它,用于开发/调试目的。您的客户端应该使用我们在对象上序列化的 url 属性。例如,如果您访问您在 mastodon.social 上链接到的主题(此处),然后在长牙菜单中点击“复制状态链接”,您会发现它是一个直接链接到 meta 上的主题。标准的 Mastodon 使用对象 url 来实现分享 URL 的目的 :slight_smile:

这可能是因为 Accept 标头未设置。我愿意进行一些调整(例如,使用正确的标头解析对象 ID 请求到连接的模型 URL),但目前我认为开发您客户端的人员可能需要使其符合规范(即,将对象 url 用作面向用户的 URL,而不是对象 id)。

自从 @feature@meta.discourse.org@announcements@meta.discourse.org 公布后不久,我就在 Mastodon 上关注它们了,但很快就收不到更新了。我以为是因为那个插件从 meta 上移除了,耸耸肩,然后继续前进。

但如果它实际上仍然活跃,那么我想知道与 social.makerforums.info 联合(federating)出了什么问题。:thinking:

服务器是 Mastodon (glitch-soc)。我询问了管理员他们是否有任何相关日志。

我在任一类别都没有看到您在关注者列表中:

插件早期有过很多改动,所以如果其中一项改动移除了您的关注,我感到抱歉。请再试一次关注,看看是否有效。

这是 glitch-soc 的一个分支吗?在他们的代码中,我没有看到您截图的分享模态框。但是,如果需要,我很乐意与您的服务器管理员进一步澄清。

我已经从Mastodon端取消关注并重新关注了,看看这是否会改变我的动态。

但是,我发现了一个不一致之处。关注者列表显示了我的错误句柄,缺少了域中的 social.

链接显示 https://social.makerforums.info/users/mcdanlj,其中正确包含了域,但有人试图在关注者列表中输入他们看到的内容来搜索我或关注我,将会失败。

我还没有在Mastodon端找到任何会截断子域的地方。

说得好,@mcdanlj。我很快就会调查。谢谢。

3 个赞

我刚从 3.3.0.beta4 升级到最新的 Discourse 3.3.0.beta5-dev 以及 ActivityPub 插件 https://github.com/discourse/discourse-activity-pub/commit/3a6512d0560211b93f022a27ed7276024d0020dc。

尽管插件已设置为激活状态,但分类中的设置选项却消失了。??

1 个赞

设置已移至 admins > plugins UI。请尝试在 /admin/plugins/ap/actor 下查找。

4 个赞