Plugin ActivityPub

Quando você exclui uma postagem do AP no Discourse, enviamos um comando de exclusão para o Mastodon. Cabe a eles processá-lo. Isso deve funcionar, então, se você puder me mostrar alguns exemplos específicos, posso tentar ver onde o fluxo de exclusão não está funcionando como esperado (ou seja, se é no lado do Discourse ou do Mastodon).

O motivo pelo qual isso acontece é que o Mastodon atualmente não permite a alteração de identificadores. Essa é a causa raiz do problema que você está enfrentando. Tenho defendido que isso aconteça há algum tempo e tenho um PR pendente para o Mastodon. Quando for mesclado, você poderá resolver isso alterando o identificador no Discourse.

A utilidade de desabilitar um identificador é que nenhum conteúdo recebido para esse identificador será processado e ele não enviará nenhum conteúdo novo. Cabe às outras plataformas o que elas fazem com seu conteúdo existente, incluindo como processam uma atividade de exclusão que enviamos a elas.

Entendido. Podemos adicionar isso no futuro.

2 curtidas

Esse é o identificador e ele está desativado e inativo: uebergabe@community.uebergabe.de

Agora eu entendo… Fiz algumas postagens de teste e ele não usou “uebergabe@community.uebergabe.de”, usou “christian@community.uebergabe.de” para postá-lo. Mas eu nunca criei esse Ator no Discourse.
Hum.

Isso é esperado se a configuração “Postagem Completa” estiver ativada (o que deve ser o caso). O conteúdo é postado em nome do Ator do usuário (ou seja, você, neste caso). Se você quiser postar em nome do ator da categoria, deverá usar “Primeira Postagem”. Nesse caso, apenas a primeira postagem de cada tópico é publicada. Você pode ver um exemplo da abordagem “Primeira Postagem” neste vídeo:

3 curtidas

Sim, é esse o caso. Obrigado por me ajudar. Claro que vi os vídeos e eles deixaram algumas coisas muito claras para mim e ajudaram a configurá-lo. Obrigado por isso!
Portanto, é claro que não posso excluir esses snippets criados que nunca criei ativamente.

Quando penso nisso, não me sinto bem… Se todos estiverem usando como eu, haverá toneladas de snippets de conteúdo de pessoas que nunca poderão ser excluídos. Isso está enchendo a internet com menos sentido, ou estou errado?

Não é sua culpa, estou apenas tentando entender o que acontecerá se todos forem burros como eu e encherem a internet com postagens de teste que nunca serão excluídas :smiley:

Você pode excluir as postagens, no entanto. Quando você exclui uma postagem, o Discourse envia um Delete para o Mastodon e o Mastodon deve excluir sua cópia. Se isso não funcionou, tente restaurar a postagem e excluí-la novamente. Verifique os logs quando fizer isso.

Como eu disse, você deve ser capaz de excluir as postagens em si, mas além disso, honestamente, não se preocupe muito com isso. O Mastodon é uma plataforma baseada em fluxo. Suas postagens de teste se perderão rapidamente no fluxo de conteúdo. Além disso, mais alguém (além de você) estava realmente seguindo seu ator naquele momento? Eu tenho centenas de postagens de teste no fediverse e isso não teve nenhum impacto :slight_smile:

Mas me diga como você se sai tentando excluir as postagens.

3 curtidas

Restaurei as postagens e as excluí novamente.
Elas estão visíveis no Mastodon. Quando clico, ele me direciona para a postagem excluída no Discourse.

Por que nicho?

Das comunidades Discourse em que participo, consigo pensar em apenas três onde eu gostaria de seguir algumas categorias, mas não gostaria de seguir o ator do Aplicativo para todo o Discourse.

Eu tenho um leitor de RSS e sigo sites inteiros via RSS; o ActivityPub seria uma experiência melhor, particularmente para responder.

O ator do Aplicativo é difícil ou apenas de baixa prioridade?

Seguir uma instância inteira significa que todos os posts dessa instância aparecerão no seu feed do Mastodon como um fluxo contínuo. A menos que a instância não tenha muita atividade, eu apostaria que esse será um caso de uso específico. Talvez eu me prove errado, mas, à primeira vista, parece implausível para mim que isso vá ser popular.

Você deu uma olhada nos logs? Vamos confirmar que estamos enviando a atividade de exclusão para o Mastodon.

1 curtida

Existe, eu acho, uma cauda muito longa de instâncias Discourse de baixo tráfego, mas definitivamente ativas, que ainda têm várias categorias. Obviamente, o meta não é uma dessas instâncias pequenas. :grin: Mas das três instâncias Discourse que administro pessoalmente, uma tem tráfego tão alto que eu nem colocaria muitas de suas categorias em meu feed do Mastodon, e duas têm taxas de tráfego baixas suficientes que eu definitivamente preferiria seguir o site inteiro. Existem outras das quais sou membro onde eu também seguiria o site inteiro se tivesse a opção.

Não estou pedindo para você mudar prioridades aqui. Apenas compartilhando a perspectiva alternativa.

5 curtidas

Isso deveria estar ativo e funcionando no Meta?

Visitar Preparing your community for behind-the-scenes header changes - Announcements - Discourse Meta me retorna um “bad request” e o post não pode ser buscado da minha instância.

Requisições de navegador humano para um objeto AP devem ser redirecionadas para a visualização humana (Preparing your community for behind-the-scenes header changes).

Sim, por exemplo no tópico que você linkou.

Isso é um “recurso” (de certa forma) que você vê em algumas plataformas AP. Observo que a especificação ActivityPub fornece:

O método HTTP GET pode ser referenciado contra a propriedade id de um objeto para recuperar a atividade. Servidores PODEM usar negociação de conteúdo HTTP conforme definido em [RFC7231] para selecionar o tipo de dados a serem retornados em resposta a uma solicitação, mas DEVEM apresentar a representação do objeto ActivityStreams em resposta a application/ld+json; profile="https://www.w3.org/ns/activitystreams", e DEVEM também apresentar a representação ActivityStreams em resposta a application/activity+json. O cliente DEVE especificar um cabeçalho Accept com o tipo de mídia application/ld+json; profile="https://www.w3.org/ns/activitystreams" para recuperar a atividade.

Veja também “Serialização” em Activity Streams 2.0.

O plugin AP atualmente exige que você envie um cabeçalho Accept com “application/ld+json” ou “application/activity+json” para recuperar qualquer objeto (ou seja, Atividade, Nota, etc.). Podemos dar suporte ao que você está se referindo no futuro, mas é um recurso de “usuário avançado” de plataformas específicas.

1 curtida

Ao visualizar uma postagem no meu cliente, há um botão proeminente Compartilhar :arrow_right: Abrir no navegador que abre o URL do objeto :slight_smile:

A página de erro de busca:

Você quer que eu peça ao meu administrador os logs relacionados à busca?

Entendi! Que cliente você está usando?

IDs de objeto não são realmente feitos para serem usados como URLs compartilháveis/copiáveis por um usuário final em um cliente. Nós o disponibilizamos no modal de status do ActivityPub para fins de desenvolvimento/depuração. Seu cliente deve usar o atributo url que serializamos no objeto. Por exemplo, se você visitar o tópico ao qual se referiu em mastodon.social (aqui) e clicar em "Copiar link para status" no menu do toot, você descobrirá que é um link direto para o tópico em meta. O Mastodon padrão usa o url do objeto para, bem, compartilhar o URL :slight_smile:

Será porque o cabeçalho Accept não está sendo definido. Estou aberto a ajustar as coisas (ou seja, resolver solicitações de ID de objeto com cabeçalhos incorretos para o URL do modelo conectado), mas no momento acho que as pessoas que fizeram seu cliente podem precisar colocá-lo em conformidade (ou seja, usar o url do objeto em vez do id do objeto como um URL voltado para o usuário).

Tenho acompanhado @feature@meta.discourse.org e @announcements@meta.discourse.org no Mastodon desde pouco depois de serem anunciados, e rapidamente deixei de receber atualizações. Pensei que fosse porque o plugin foi removido do meta, dei de ombros e segui em frente.

Mas se ele está realmente ativo, então estou me perguntando qual é o problema de federar com social.makerforums.info. :thinking:

O servidor é Mastodon (glitch-soc). Perguntei ao administrador se ele tinha algum log relevante.

Não o vejo na lista de seguidores de nenhuma das categorias:

Houve muitas mudanças no início da vida do plugin, então peço desculpas se uma dessas mudanças removeu seu seguimento. Por favor, tente seguir novamente e veja como funciona.

É um fork do glitch-soc? Não vejo a modal de compartilhamento que você capturou em o código deles. Mas sim, ficarei feliz em trabalhar com o administrador do seu servidor para esclarecer as coisas mais a fundo, se necessário.

Desativei e reativei o seguir do lado do Mastodon, e verei se isso muda meu feed.

No entanto, vejo uma inconsistência. A lista de seguidores exibe o identificador incorreto para mim, faltando o social. no domínio.

Os links mostram https://social.makerforums.info/users/mcdanlj, que inclui corretamente o domínio, mas alguém que tentasse inserir o que vê nesta lista de seguidores para me procurar ou me seguir falharia.

Não encontrei em nenhum lugar do lado do Mastodon que corte o subdomínio.

Boa observação, @mcdanlj. Vou investigar isso em breve. Obrigado.

3 curtidas

Acabei de fazer o upgrade do 3.3.0.beta4 para o mais recente Discourse 3.3.0.beta5-dev junto com o plugin ActivityPub Allow changes of post owner on unpublished local topics (#109) · discourse/discourse-activity-pub@3a6512d · GitHub.

Embora o plugin esteja definido como ativo, as opções de configuração nas categorias desapareceram. ??

1 curtida

As configurações foram movidas para a interface de administradores > plugins. Tente em /admin/plugins/ap/actor.

4 curtidas