ActivityPub 插件

我遇到了一个问题。也许这是一个极端情况。我设置了一个类别来使用 ActivityPub,但在 Mastodon 等其他平台上无法访问它,并且帖子没有被联合,因为我无法访问和关注该类别。

我认为这可能是由于句柄中的大写“E”引起的。Events@bayofislands.community

我还有另一个可以正常联合的类别。您可以在以下位置看到它的实际效果:

有什么建议可以让我不用创建一个全新的事件类别就能让它工作吗?我能否修改数据库中的一个或多个记录来更新类别的用户名?

我还注意到,在 Mastodon 中,关注类别的 URL 无法正常工作:Log in - Mastodon Newfoundland and Labrador

感谢您的报告。将 E 改为小写即可正常工作

我将尽快修复此问题(即处理大写字母)。

1 个赞

我们可以删除关注者吗?我有几个来自已删除实例的参与者,我想清理一下 :smirking_face:

一个很好的请求,我很快也会添加。

2 个赞

我不确定这实际上是否是大小写问题。我可以确认以下几点吗:

  1. 您运行的是最新版本的 Discourse;以及
  2. 您运行的是最新版本的 ActivityPub 插件。
1 个赞

我发现了一件事:由 ActivityPub 插件创建的用户没有分配任何组,也没有任何电子邮件。

是否可以为 ActivityPub 插件创建的用户分配自定义组?

3 个赞

这也导致了一个错误,即如果类别设置为 TL0,则可以发布(对 everyone 只读),AP 用户可能无法发布,因为他们没有此权限。

3 个赞

这里还有一个 bug。如果 SiteSettings.selectable_avatars_mode 被设置为 everyone,它也会导致 AP 用户缺少头像。

1 个赞

此功能已准备就绪,在 Tag Actors 合并后即可进行审查。

目前还不行。它们是暂存用户,所以有一些限制。也许以后可以实现。

感谢您的报告。我将尽快仔细查看此情况。目前,您可以将发帖权限设置为 everyone,这样就可以正常工作了。

也感谢您的报告。我将尽快仔细查看此情况。

3 个赞

您好,我在发布时遇到“no recipients”问题,该如何排查?

[Discourse Activity Pub] https://meta.appinn.net/ap/actor/b04930460474d895289ae0cd3c2ae719 无法安排 https://meta.appinn.net/ap/activity/2ad9bfcc78a9df49efa7b6e9bda454da 进行投递:no recipients

日志:

Message

[Discourse Activity Pub] https://meta.appinn.net/ap/actor/b04930460474d895289ae0cd3c2ae719 无法安排 https://meta.appinn.net/ap/activity/2ad9bfcc78a9df49efa7b6e9bda454da 进行投递:no recipients

Backtrace

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:93:in `log_failure'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:35:in `can_deliver?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:13:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:27:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:140:in `activity_pub_deliver_activity'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:38:in `perform_activity_pub_activity'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:478:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:354:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:354:in `block (2 levels) in add_to_class'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:486:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:354:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:354:in `block (2 levels) in add_to_class'
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/discourse_activity_pub/post_controller.rb:17:in `schedule'
actionpack-7.0.8.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:215:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n-1.14.4/lib/i18n.rb:322:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `block in instrument'
activesupport-7.0.8.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `instrument'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-7.0.8.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:151:in `process'
actionview-7.0.8.1/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack-7.0.8.1/lib/action_controller/metal.rb:188:in `dispatch'
actionpack-7.0.8.1/lib/action_controller/metal.rb:251:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'
railties-7.0.8.1/lib/rails/engine.rb:530:in `call'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'
actionpack-7.0.8.1/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack-7.0.8.1/lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack-2.2.9/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.9/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.9/lib/rack/head.rb:12:in `call'
actionpack-7.0.8.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:26:in `call'
rack-2.2.9/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.9/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster-2.19.1/lib/logster/middleware/reporter.rb:40:in `call'
railties-7.0.8.1/lib/rails/rack/logger.rb:40:in `call_app'
railties-7.0.8.1/lib/rails/rack/logger.rb:27:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/request_id.rb:26:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
rack-2.2.9/lib/rack/method_override.rb:24:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.9/lib/rack/sendfile.rb:110:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler-3.3.1/lib/mini_profiler.rb:191:in `call'
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:237:in `call'
railties-7.0.8.1/lib/rails/engine.rb:530:in `call'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.9/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.9/lib/rack/urlmap.rb:58:in `each'
rack-2.2.9/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

Env

HTTP HOSTS: meta.appinn.net

我认为你需要有人(或某个“参与者”)来关注该类别。请看这里:

2 个赞

但是当我使用 mastodon.social 关注此类别时:
[Discourse Activity Pub] 发送到 https://meta.appinn.net/ap/actor/b04930460474d895289ae0cd3c2ae719/inbox 的 POST 请求失败:401 找不到密钥 https://mastodon.social/users/Cosmeticclinic#main-key 的 Actor

这是个 bug 吗?(“无效日期”)

1 个赞

功能请求:是否可以暂停或禁用由 activitypub 插件创建的帐户?

我们有一位用户严重违反了我们的服务条款并被永久禁止,但他们逃到了另一个与我们合作的论坛,通过 activitypub,我们仍然可以看到他们在那里发布的帖子。

我尝试暂停他们,但没有成功。(HTTP 422 Unprocessable Content)

2 个赞

与此同时,通过 activitypub 发送的带图片的帖子似乎无法正常加载

这是我在我的论坛上的一个例子:原始已发送

1 个赞

感谢您的报告,我将尽快仔细查看这两份报告。

1 个赞

这是一个非常棒的插件——也是令人兴奋的、蓬勃发展的联邦宇宙(fediverse)的关键组成部分,这真是一项了不起的工作!

这个插件近期是否可能在不同的 Discourse 实例之间的私有类别之间使用?我知道这与开放的联邦使用场景有很大的不同,但我可以想象它在更私密/封闭的环境中促进协作非常有用。

2 个赞

我已经安装了 activitypub 插件,并且可以在管理员设置中看到它已存在并已启用。但是,当我转到某个分类的设置时,却看不到 activitypub 部分。唯一有点不寻常的是,我正在运行一个多站点配置。对于我可能遗漏了什么/如何修复这个问题,有什么想法吗!

1 个赞

Just a note that private categories can currently follow public categories. Private categories cannot currently be followed. Keep in mind that there is some tension in the idea of “following” a “private” Group, and that the concept is controversial in the Fediverse. That said, it may well be implemented, but it won’t be “soon” :slight_smile:

The category settings have been moved to Admin > Plugins > ActivityPub. I will be updating the documentation in the OP soon!

4 个赞

啊哈!我上面确实看到了关于这个的信息,但当我进入 管理员 > 插件 时,没有在顶部看到菜单,所以我点击了插件列表中的 ActivityPub,结果又回到了这里。然后我尝试返回并查看设置链接下的内容。所以,也许最好澄清一下,比如从 activitypub 设置中链接到类别设置。

总之,它现在似乎在工作,谢谢!

2 个赞