Miraré el soporte explícito de Pixelfed después de mirar (otra vez) Lemmy y Wordpress
Si bien todas las plataformas ActivityPub deberían ser, en teoría, interoperables, casi siempre se necesitan algunos ajustes para que cada integración funcione correctamente. Particularmente porque usamos temas y la mayoría de las otras implementaciones son solo flujos de publicaciones.
¿WordPress? Tiene su propia solución de Automattic. Aunque es un poco extraño con todo ese asunto de amigos. ¿O te refieres a esa cosa del perfil de usuario?
He estado intentando que esto funcione correctamente, desde que publiqué en agosto y creo que mi problema podría ser más simple de lo que pensaba.
Podría estar bloqueado para seguir al actor en la instancia de Mastodon.
En ese tiempo, reinstalé Discourse, el plugin, moví el sitio a un servidor diferente y luego, hoy, cambié el nombre de dominio pensando que podría haber sido eso.
Pude seguir desde una cuenta de mastodon.social y una cuenta de una instancia de Sharkey, y ambas funcionaron bien.
No creo que la instancia esté bloqueada en el servidor (de nuevo, he cambiado de proveedor de servidor y de nombres de dominio), pero me gustaría tener una segunda opinión.
[Discourse Activity Pub] GET request to https://mastodon.ie/users/padraig failed: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(401 Unauthorized)
[Discourse Activity Pub] Failed to process https://mastodon.ie/users/padraig: Could not resolve actor
[Discourse Activity Pub] Failed to process https://mastodon.ie/b35f6088-19b9-472d-a277-e0310fed585f: Could not create actor
[Discourse Activity Pub] DiscourseActivityPub::AP::Handlers::Warning
Si necesitas la traza de la pila y/o el entorno, házmelo saber
¿Se permite mastodon.ie aquí? activity pub allowed request origins? Y es posible que necesites tener activity pub require signed requests habilitado o deshabilitado.
Tengo eso deshabilitado y no hay entradas en las siguientes opciones (Entonces, ¿eso debería significar que cualquiera puede seguir a @general@gamersandgeeks.net, sí?):
Tengo varios foros de Discourse conectados usando el plugin ActivityPub. Si instalo Discourse AI en uno de estos foros, ¿puede el bot de IA acceder y utilizar contenido de otras instancias federadas para responder preguntas en su interfaz de chat?
@Crakila Por favor, revisa los pasos y la discusión en este tema, y haz un seguimiento allí si esas sugerencias no resuelven tu problema:
Si el contenido está federado a una instancia, un bot de IA en esa instancia puede usar ese contenido. Todo el contenido “remoto” en una instancia tiene el mismo estado que el contenido “local” a efectos de otras funcionalidades.
`skip_email_validation=' para una instancia de Category
Message (46 copies reported)
Job exception: undefined method `skip_email_validation=' for an instance of Category
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activemodel-7.2.2.1/lib/active_model/attribute_methods.rb:512:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/attribute_methods.rb:491:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:150:in `update_user'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:47:in `block in update_or_create_user'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:415:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:45:in `update_or_create_user'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:82:in `update_or_create_user'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:782:in `block (2 levels) in activate!'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:76:in `block in apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `all?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:873:in `block (2 levels) in activate!'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:76:in `block in apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `all?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:24:in `apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:64:in `perform_activity'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:38:in `block in perform_transactions'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:in `perform_transactions'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity/announce.rb:26:in `process'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
Esa es mi cuenta. ¿Es lo que parece, que no he verificado mi correo electrónico en la instancia o de alguna manera en la categoría, y ActivityPub no sabe cómo manejar esa situación?
¿Hay algún plan para convertir a los usuarios de Discourse en actores?
Al ver ActivityPub como un protocolo para trabajar abiertamente, este parece ser un paso que falta para usar Discourse como un lugar al que se pueda seguir para las propias ideas.
Los usuarios de Discourse ya son actores de ActivityPub. Simplemente no puedes seguirlos. El plugin está diseñado para permitir esa posibilidad. La pregunta es si es prudente.
No me gusta. Cambia la idea central de los foros hacia una instancia pura de Mastodon, y para eso ya tenemos una opción, Mastodon. Todavía hay una gran diferencia entre seguir temas y seguir personas.
Compartir contenido a través de ActivityPub es algo totalmente diferente.
Mataría al menos mi foro de inmediato. Incluso ahora, las comparticiones de ActivityPub son un gran problema para algunos de mis usuarios. Y una situación en la que algunos usuarios usarían Mastodon por completo a través de Discourse, y al mismo tiempo otros no, crearía un conflicto gigantesco.
Algunos podrían decir que es vivir cada día en el mundo de Mastodon, porque incluso si uno participa en un hilo, toda la conversación no es visible, a menos que se visite el original a través del navegador. Pero aún así, no.
Estoy planeando configurar una plataforma de transmisión en vivo autoalojada y usar Discourse como software de foro, con el chat en vivo de Discourse integrado en la transmisión en vivo.
He estado descubriendo software de fediverso recientemente y pensé que Peertube sería genial para subir contenido VOD, lo que podría aumentar la descubribilidad de mi plataforma, ya que la gente puede ver los videos desde Mastodon y luego descubrir el resto de mi sitio a partir de ahí.
¿Podría usar este plugin para permitir que las personas usen su cuenta de AP para iniciar sesión en mi instancia de Discourse, de manera similar a como muchos sitios tienen inicio de sesión con Google/Facebook?
¿Crees que la pregunta de si es sensato se puede responder en general, considerando todos los casos de uso posibles de Discourse?
En mi caso, todavía estoy buscando formas de usar el fediverso de manera productiva. Preferiría pensar en público usando una instancia de Discourse como mi jardín digital. Actualmente, la única forma que veo de tener un feed público de mis pensamientos es tener una cuenta en una instancia de Mastodon, seguir todas las categorías de mi jardín privado y potenciar cada mensaje que publico a través de esta cuenta.
Me gustaría experimentar usando Discourse como mi principal conexión con el fediverso.