Plugin ActivityPub

Sembra che ci saranno problemi con gli username non latini in modalità Articolo. Sembra che lo username debba essere codificato?

2 Mi Piace

Sembra che in un ambiente di rete fluttuante, un post possa essere ricevuto più volte.

3 Mi Piace

@angus @infodesk@oxygen.offdem.net avrebbe dovuto pubblicare alcuni messaggi dopo il post iniziale, ma non sembrano apparire affatto nella mia timeline, senza alcun errore su Discourse.

Un paio di giorni fa ho utilizzato una bozza condivisa prima di pubblicare, ma il messaggio non è apparso su Mastodon. Quindi ho pensato che fosse correlato a un bug con le bozze condivise, e oggi ho pubblicato direttamente su un nuovo argomento, ma anche se il post doveva essere inviato al Fediverse alle 13:18 CET, non appare nulla – quindi non è condivisibile. :thinking:

Versione del plugin

eee34494

Log degli errori

Finalmente è apparso: https://oxygen.offdem.net/logs/show/c6449d732e8e9b866bf07935e8132744

(Nota che una correzione che rinvierebbe gli ultimi messaggi sarebbe fantastica)

Annunci più recenti

Impostazioni della categoria

Il plugin ActivityPub dispone di un robusto sistema di logging che rileverà la maggior parte dei problemi. Innanzitutto, assicurati di aver attivato il logging dettagliato per il plugin.

Qual è lo stato di pubblicazione di questo post? (ad esempio, condividi uno screenshot della finestra modale che appare quando fai clic sull’icona AP sul post)

Presumo che lo stato di pubblicazione sia “pubblicato” (ad esempio, l’icona è verde)? Se avessi il logging dettagliato attivo, potresti condividere cosa è stato registrato quando è stato pubblicato? (qualcosa sarebbe stato registrato).

1 Mi Piace

Grazie @angus, il registro degli errori è nel mio post precedente:

Ecco lo stato del post:

Puoi vedere l’argomento qui: O₄FFDEM programme is out! - Announcements - OFFDEM

1 Mi Piace

Grazie per i maggiori dettagli.

Solo gli amministratori possono visualizzare i log su un’istanza :slight_smile:

Potresti copiarmi i log pertinenti in un messaggio privato? Grazie.

3 Mi Piace

Ciao a tutti, grazie mille per l’ottimo lavoro svolto per portare questo concetto a questo punto!! Ho iniziato a seguire le discussioni per implementare la federazione in Discourse molti anni fa, e sono felice di vedere che questo sta progredendo così tanto.

Sono riuscito a federare con successo la mia categoria Discourse seguendola con il mio account su Mastodon. I nuovi argomenti nella mia categoria sono disponibili per la visualizzazione dal mio account Mastodon.

Non sembra che io stia ricevendo risposte da Mastodon ai miei argomenti federati di Discourse in Discourse, ma i Toot di primo livello dal mio account Mastodon seguito sembrano apparire come nuovi argomenti senza problemi. Questo è attualmente il comportamento previsto?

Ho letto questo thread e non credo di aver visto esplicitamente nulla sulla federazione delle risposte agli argomenti.

Ecco uno screenshot delle impostazioni di ActivityPub della mia categoria.

Questo è in qualche modo correlato alle impostazioni di sicurezza per la categoria? Al momento ho impostato che tutti possano vedere gli argomenti, ma solo gli amministratori possono crearli e rispondere.

Grazie!

2 Mi Piace

Ciao @rsmithlal, grazie per aver provato il plugin e per il tuo feedback dettagliato!

Sì, questo è il motivo per cui le risposte ai toot non vengono importate. Solo per capire, ti aspetti che:

  1. Gli utenti non possano rispondere a un argomento di Discourse in Discourse.
  2. Gli utenti possano rispondere a un argomento di Discourse su Mastodon.

È corretto? Se sì, al momento non è supportato. Ma prendo atto che non è ancora del tutto chiaro come le impostazioni di sicurezza delle categorie debbano interagire con ActivityPub. Speriamo di affrontare questo aspetto in modo più esplicito nella prossima fase di lavoro.

2 Mi Piace

Ciao @angus, ciò significa che le risposte ai toot ai topic di Discourse che sono stati federati dovrebbero apparire nel topic federato come risposte di Discourse con la configurazione corretta?

Ad esempio:

  1. Diciamo che creo un nuovo topic “Il mio primo topic federato” sulla mia istanza Discourse Discourse1.server in una categoria federata “La mia categoria federata”.
  2. Questo nuovo topic viene federato e appare come un toot da fed-cat@discourse1.server nel feed del mio account Mastodon rob@mastodon1.server che segue “La mia categoria federata, fed-cat@discourse1.server”.
  3. Creo un toot di risposta su Mastodon1.server al post federato contenente i contenuti di “Il mio primo topic federato” originariamente federato da Discourse1.server.

In questo caso, mi aspetterei che la mia risposta toot di Mastodon a questo topic Discourse federato dovrebbe apparire come una risposta al topic originale “Il mio primo topic federato” su Discourse1.server.

Questo sarebbe il caso ideale per me, ma non sono ancora riuscito a ottenerlo. È attualmente possibile?

Se ciò è possibile, quali sono le impostazioni di configurazione che permetterebbero il suo funzionamento come previsto?

Grazie mille. Spero che la mia spiegazione sia stata chiara!

1 Mi Piace

La categoria principale ha ActivePub abilitato e ho creato una sottocategoria anche con ActivePub. Ma quando provo a seguire qualcuno tramite la sottocategoria cliccando sul pulsante follows ottengo una noiosa pagina di errore “non trovato/non consentito”. Le categorie principali funzionano bene, però.

Non ci sono impostazioni particolari o strane.

Comportamento atteso o bug?

@rsmithlal Sì, quello che hai descritto è il modo in cui il tipo di pubblicazione “Argomento completo” è pensato per funzionare. L’unica modifica che devi apportare è consentire agli utenti normali di rispondere nella categoria (nelle impostazioni di accesso alla categoria). Il motivo per cui non funziona per te è che hai limitato le risposte agli amministratori. Le risposte importate da ActivityPub non possono sovrascrivere tale restrizione.

In generale, le sottocategorie non ereditano la configurazione delle categorie genitore, e ActivityPub non fa eccezione a questo riguardo. Le impostazioni di ActivityPub sono specifiche per categoria e non c’è (ancora) ereditarietà. Detto questo, quello che hai descritto è un problema di UX che risolverò presto, cioè i controlli di ActivityPub non dovrebbero apparire quando si guarda specificamente una sottocategoria.

3 Mi Piace

Grazie, @angus, ci proverò. Molto emozionante!!

Avevo per lo più limitato le risposte perché era solo una categoria e un argomento di prova. Inizialmente l’avevo reso privato per gli amministratori, ma non ero riuscito ad attivare ActivityPub finché non l’avevo reso visibile a tutti. Questo è stato uno scambio molto istruttivo.

2 Mi Piace

@Jagster Il problema che hai descritto verrà risolto una volta che questo sarà unito. Grazie per averlo segnalato.

5 Mi Piace

Problema

Ciao, stiamo testando questo plugin su agora.eXO.cat e non riusciamo a farlo funzionare (lo stato sul web di Discourse dice “Nota non è stata pubblicata tramite ActivityPub”, altre app del fediverso non trovano l’attore)

C’è qualcosa di particolare a cui dovremmo prestare attenzione? La consultazione della documentazione non ha indicato nulla di particolare per la risoluzione dei problemi che possiamo seguire e i log (vedi sotto) non ci aiutano ulteriormente :-(.

Configurazione

Versione del plugin: 79da1c2

Stiamo utilizzando una sottocategoria pubblica, che vogliamo pubblicare sul fediverso.

Le impostazioni sono semplici, non è stato modificato nulla tranne:

  • Orario di pianificazione ridotto a 1 minuto per il test
  • Scelta del nome dell’attore e del nome visualizzato per la categoria

Alcune cose che abbiamo provato:

  • Abilitare “activity pub object logging” e controllare i log
  • Patchare la riga che ha prodotto l’errore, poiché ci dava un senso di “uovo e gallina” (“forse non è possibile pianificare un post perché non ci sono destinatari, non creerà l’attore finché il post non sarà creato”)
> ./launcher enter app
> sed -i.orig -E 's!^(.*no recip.*)$!#\\1!' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb
> ./launcher restart app
  • Quando quella patch non ha funzionato, l’abbiamo rimossa
  • Eliminazione e ricreazione della categoria in modo che non ci siano caratteri “speciali” ovunque (la parola è in realtà exofàsia, che vogliamo scrivere: eXOfàsia)
  • Ricreando la categoria, usare Note (predefinito) invece di Article (quello che vogliamo)

Log

Messaggio

[Discourse Activity Pub] eXOfàsia - Àgora de l'eXO non è riuscito a pianificare https://agora.exo.cat/ap/activity/803be329c95f67b5ab62d43c7c61f6f3 per la consegna: nessun destinatario

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:473:in block (2 levels) in activate!' /var/www/discourse/lib/plugin/instance.rb:341:in public_send’
/var/www/discourse/lib/plugin/instance.rb:341:in block (2 levels) in add_to_class' /var/www/discourse/plugins/discourse-activity-pub/plugin.rb:654:in block (2 levels) in activate!’

Env

HTTP HOSTS: agora.exo.cat

Messaggio

[Discourse Activity Pub] eXOfàsia - Àgora de l'eXO non è riuscito a pianificare https://agora.exo.cat/ap/activity/30d34f8b38be0d2d5bc997fd4147c5b2 per la consegna: nessun destinatario

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:473:in block (2 levels) in activate!' /var/www/discourse/lib/plugin/instance.rb:341:in public_send’
/var/www/discourse/lib/plugin/instance.rb:341:in block (2 levels) in add_to_class' /var/www/discourse/plugins/discourse-activity-pub/plugin.rb:481:in block (2 levels) in activate!’

Env

HTTP HOSTS: agora.exo.cat

Webfinger

E questo è ciò che restituisce un webfinger:

> curl -L 'https://agora.eXO.cat/.well-known/webfinger?resource=acct:exofasia@agora.exo.cat'
{"subject":"acct:exofasia@agora.exo.cat","aliases":["https://agora.exo.cat/c/exo/exofasia/33"],"links":[{"rel":"self","type":"application/activity+json","href":"https://agora.exo.cat/ap/actor/31cb67a1093eca932caaf1e764814bde"}]}
2 Mi Piace

Ehi @evilham, il messaggio che stai vedendo viene registrato quando l’attore non ha follower (nessuna attività verrà pubblicata). Qualcuno sta seguendo l’attore?

Nota che l’unico attore che può essere seguito attualmente è l’attore Categoria (cioè l’attore Gruppo). Quell’attore viene creato non appena abiliti ActivityPub in una categoria (e quindi non causa un problema di uovo e gallina). Al momento non puoi seguire attori utente (cioè Persone).

1 Mi Piace

Ehi, il problema è proprio che l’attore non viene trovato (prova tu stesso: exofasia@agora.exo.cat):

Controllando più nel dettaglio ieri sera qui, ho visto che non siamo la prima istanza a sbattere contro questo:

Quindi, forse la voce di log non è correlata, ma è l’unica che abbiamo ><, quindi l’unico indizio da seguire.

Il post stesso rimane con un’icona disconnessa da fediverse e questo testo:

Qualsiasi tentativo di programmare la pubblicazione del post si traduce nel log che abbiamo menzionato, e nient’altro.

La categoria afferma di essere configurata correttamente (come menzionato, non è stato modificato nulla):

E la categoria è completamente pubblica.

Ho appena seguito con successo quell’attore dalla mia istanza locale.

L’ho trovato con successo.

Poi ho inviato con successo un Follow e ho ricevuto un Accept.

Se aggiorni l’elenco “Followers” sulla tua istanza, ora vedrai un follow da general@angus.ngrok.io.

Sospetto che il problema che stai riscontrando sia che hai le firme HTTP impostate come obbligatorie

e il client che stai usando per seguire non supporta e/o invia una firma HTTP appropriata. Questo è forse anche il problema che @Lhc_fl stava riscontrando.

2 Mi Piace

Oh, questo è piuttosto interessante, posso confermare che il follow appare!

Infatti, poiché questo era il default e abbiamo cambiato il meno possibile.

Abbiamo provato diversi client, principalmente Mastodon e Pleroma.

Seguendo il suggerimento delle firme HTTP richieste, lo abbiamo disabilitato (ovvero: abbiamo cambiato il default), quindi abbiamo provato a riprogrammare il post, questa volta con un risultato positivo (forse la differenza è perché c’è 1 follower?):

D’altra parte, almeno Mastodon continua a mostrare un 404 quando cerca il profilo, quindi l’obiettivo principale (seguire la categoria da altre app fediverse) non è ancora soddisfatto.

C’è qualcos’altro che possiamo esaminare? per facilitare ciò?

Ho anche seguito con successo quella categoria da Mastodon.

1 Mi Piace

Oh wow, non capisco, prima dell’ultimo post ho provato da due diversi server Mastodon, uno dei quali non avevo mai usato prima, e il risultato è stato un 404 sul profilo su entrambi.\n\nControllerò di nuovo nel pomeriggio, ma qualsiasi suggerimento sul perché la visualizzazione potrebbe essere incoerente o cosa possiamo provare sarebbe fantastico.

1 Mi Piace