Para que serve o novo recurso `external_id` para tópicos?

De https://meta.discourse.org/t/2-9-0-beta2-security-fix-and-more/218086:

Adiciona suporte para external_id ser usado ao criar e buscar tópicos. Esta é uma mudança apenas para a API.

Tenho vários bots (experimentais no momento) baseados em API que vinculam tópicos a recursos externos (como rastreadores de bugs ou problemas relacionados a uma conversão). https://docs.discourse.org me diz o que é isso, mas não muitos detalhes sobre como isso deve ser usado. Existe uma explicação mais longa? Parece que isso pode ser muito útil!

3 curtidas

O que impulsionou este recurso foi que muitos sites precisam interagir com o Discourse por meio de algum outro aplicativo externo, mas muitas vezes não têm uma boa maneira de acompanhar todos os IDs internos do Discourse para manter as coisas sincronizadas. Agora que você pode criar um tópico com um external_id, pode ser muito mais fácil associar um tópico específico do Discourse a um recurso em seu próprio aplicativo.

Apenas para esclarecer, este novo recurso external_id é apenas para tópicos, não para posts. Portanto, um tópico pode armazenar um external_id, mas um post não pode.

6 curtidas

Obrigado @blake. Então, o “external_id” pode ser arbitrário da minha parte? Para https://ask.fedoraproject.org/c/common-issues/141/none, tenho feito algo bastante horrível — obtendo a postagem principal e, em seguida, escaneando a lista link_counts em busca de URLs que correspondam ao padrão do recurso externo.

Sim, desde que se enquadre no formato de uma string de 50 caracteres, incluindo - e _.

2 curtidas

Ah, bom saber. Então, números de bugs, não URLs completas. :slight_smile:

1 curtida

Uma postagem foi dividida em um novo tópico: O ID externo do tópico da API não pode ser reutilizado após excluir um tópico e criar um novo

Alguém pode, POR FAVOR, expor o external_id na interface do embed.js? Eu realmente preciso mostrar posts em uma página externa conectada a um external_id onde eu não conheço o topic_id.

Olá Aaron :slight_smile:
Não há necessidade de postar a mesma pergunta em vários lugares. Vamos continuar no seu tópico original :+1: