Configurare l'accesso a Twitter e embed ricchi per Discourse

Per essere totalmente onesti con il team di Discourse, questo è diverso dal problema di dicembre 2020. L’ultimo post per quel problema diverso è stato subito prima del primo post di @dnfoz qui, ed era di oltre un anno fa. Il problema di @dnfoz è stato pubblicato solo 8 giorni fa, non mesi fa. Il problema è che Twitter cambia costantemente la sua API perché, francamente, non ha idea di quale sia il suo obiettivo per la sua piattaforma. Ecco perché un problema di un anno fa sarà totalmente diverso da uno, diciamo, di una settimana fa, in particolare con Twitter. E se questo fosse un problema di mesi fa, al di fuori dell’osmosi e della lettura del pensiero, tu o qualcuno avreste dovuto pubblicarlo in modo che lo sapessero.

2 Mi Piace

Sembra funzionare tranne che alla registrazione non compila automaticamente il campo email? Sto facendo qualcosa di sbagliato? Funziona con la mia registrazione Google, dove popola automaticamente l’email.

1 Mi Piace

Vedi l’esempio di @dnfoz. Dipende dal fatto che ogni provider SSO è diverso, il che significa che il modo in cui Google lo fa è un po’ diverso da Twitter, e Twitter è tra i peggiori, se non il peggiore. L’API di Twitter è un bersaglio mobile perché Twitter non sa cosa diavolo sta facendo e Twitter non mostra alcuna cortesia agli sviluppatori che costruiscono attorno alla sua API. Quindi, ad essere brutalmente onesti con te, a meno che noi amministratori di Discourse o il team di Discourse non stiamo costantemente monitorando questo plugin per le modifiche a monte da parte di Twitter, si romperà costantemente in questo modo.

2 Mi Piace

Grazie per questo. Sì, non credo che dovrei perdere altro tempo ad imparare e armeggiare con le API di Twitter che, come dici tu, potrebbero cambiare in qualsiasi momento. Sono sicuro che i miei utenti se la caveranno!

2 Mi Piace

Ciò non significa che il team di Discourse non stia già lavorando a una soluzione, cosa che sta facendo, e potrebbe non richiedere altro che l’aggiornamento del plug-in affinché funzioni di nuovo lato amministratore. Il problema è che questo è un problema abituale con Twitter perché sono una società mal gestita. Manterrò comunque il mio plug-in Twitter SSO come opzione, ma Twitter non è assolutamente un’opzione sicura e affidabile come qualsiasi altro SSO.

1 Mi Piace

Se stiamo ancora riscontrando questi problemi, possiamo provare a riprodurre lo stesso problema su try.discourse.org? Sono riuscito ad accedere senza problemi con il mio account Twitter lì.

4 Mi Piace

Wow, iscriversi con Twitter al forum del sottodominio try che hai appena condiviso sembra aver funzionato a meraviglia. Questo mi fa davvero chiedere se ci sia una collisione di plugin o una configurazione unica in corso qui.

2 Mi Piace

Molto strano. Sto ancora riscontrando un comportamento anomalo sul mio sito web. È in produzione, quindi non posso modificare troppe cose, ma farò del mio meglio per cercare di scoprirlo. Non deve essere poi così unico se anche altri utenti segnalano questo problema.

1 Mi Piace

Rispetto al post principale qui, Twitter ha modificato visivamente la configurazione delle impostazioni. Ecco cosa ho configurato (le impostazioni che sono sicure da condividere pubblicamente qui nel forum, comunque) per la mia istanza di Discourse, almeno:

MODIFICA: Questo potrebbe essere qualcosa. Sebbene ci sia ancora un’opzione per richiedere l’email agli utenti, non c’è più un’impostazione per Abilita autenticazione di terze parti come menzionato nel post principale. Per le persone che avevano configurato il loro accesso Twitter prima di questa modifica nelle loro impostazioni, questo potrebbe non essere un problema poiché Twitter potrebbe mantenerli e migrare le loro impostazioni. Tuttavia, non vedo più questa opzione, il che potrebbe rappresentare un problema per utenti come me e @dnfoz che stanno configurando i nostri forum per la prima volta e Discourse ha bisogno dell’autenticazione di terze parti per completare con successo il processo di handshaking SSO.

MODIFICA 2: Ecco un’altra cosa su cui riflettere. Discourse si aspetta l’API di Twitter v1 o v2? Per i nuovi sviluppatori, non offrono più la v1 poiché menzionano solo la migrazione per coloro che già utilizzavano la v1 senza menzionare il supporto legacy v1 per i nuovi utenti. Vedi i dettagli qui:

Come descritto nel link sopra, sembrerebbe che consentano solo agli account sviluppatore preesistenti di migrare la v1. Non vedo alcun modo o documentazione per abilitare la v2 su nuovi account sviluppatore e quindi ho solo il supporto v2.

Quindi, supponendo che l’SSO e l’embedding si aspettino l’API di Twitter v1, ciò potrebbe richiedere uno sforzo di codifica per supportare entrambe le versioni dell’API o per sospendere il supporto v1 se un approccio a doppio binario non è possibile.

MODIFICA 3: Leggendo il forum Discourse di Twitter Developers (oh, l’ironia che lo stesso Twitter usa Discourse!), i miei sospetti sembrano essere quasi confermati. Secondo il loro banner fissato (visualizzabile qui: Twitter Developers (twittercommunity.com)), i nuovi sviluppatori non possono accedere all’API v1.1:

Sei nuovo sulla piattaforma e pronto per iniziare?

Ti incoraggiamo a iscriverti per l’accesso Essential e effettuare la tua prima richiesta all’API.

Una volta iscritto, avrai un progetto con accesso Essential nel tuo account che ti fornirà quanto segue:

  • 1 ambiente App
  • La possibilità di recuperare fino a 500.000 Tweet al mese
  • La possibilità di utilizzare fino a 5 regole con l’endpoint del flusso filtrato
  • Accesso alla maggior parte degli endpoint dell’API v2 di Twitter
  • Non sarai in grado di accedere agli endpoint standard v1.1, premium v1.1 o enterprise
3 Mi Piace

Sì, è esattamente quello a cui mi riferisco su songwritingsteps.com: inserisce “user1” e nessuna email.

Per favore, fammi sapere se scopri qualcosa! Stavo sbattendo la testa contro il muro per ore :confused:

1 Mi Piace

No, nessuna idea! Posso sempre creare un forum in una VM sulla mia macchina locale e vedere se riesco a capire cosa sta succedendo. Per ora, però, nessun indizio. Sto sparando nel buio ma, come detto, sospetto che il colpevole sia il supporto atteso per l’API V1. Il supporto legacy V1 necessario non è più presente per i nuovi account sviluppatore, come ho appena condiviso.

1 Mi Piace

Grazie! Ottimo lavoro di scavo @Hifihedgehog. Stiamo valutando il percorso migliore da intraprendere e forniremo un aggiornamento quando ne avremo uno.

Grazie a tutti per la vostra pazienza.

2 Mi Piace

Non credo che tu possa configurare i login social su una macchina locale. Hai bisogno di un certificato https valido. Hai un certificato valido per accedere alla VM sulla tua macchina locale?

1 Mi Piace

In realtà, non è troppo complicato: potrei impostare un tunnel SSH sulla mia macchina locale dal mio VPS e poi puntarlo a un proxy sul mio webserver che ha già un certificato SSL. :wink:

3 Mi Piace

Ok, penso che siamo riusciti a risolvere il mistero :mag_right:

Come ha sottolineato @Hifihedgehog, i nuovi account sviluppatore di Twitter iniziano con il piano “Essential” e sono limitati agli endpoint dell’API v2. Il nostro login Twitter integrato attualmente necessita di accedere agli endpoint v1.1. Fortunatamente non è un problema!

Ci sono due cose importanti da notare in questo grafico su X API v2 - X

Puoi ottenere l’accesso all’API v1.1 gratuitamente con il piano Elevated. Devi semplicemente fare domanda dalla tua dashboard sviluppatore. L’ho trovato molto rapido e facile. I login Twitter di Discourse hanno funzionato senza intoppi dopo di che :tada:

Aggiornerò l’OP per includere questo nuovo requisito.

10 Mi Piace

Ragazzo, hai ragione! Ci sono voluti un paio di minuti e sono stato approvato all’istante. Le correzioni semplici sono sempre gradite! :smile:

5 Mi Piace

8 post sono stati divisi in un nuovo argomento: Citazione non funzionante quando il nome corrisponde al nome utente

Se la chiave o il segreto di Twitter vengono aggiornati, ciò influisce sugli utenti esistenti? In caso affermativo, esiste un modo per “risolverlo”? Ho trovato queste istruzioni per gli aggiornamenti di accesso a Facebook, questo sarebbe lo script corretto da usare?

cd /var/discourse
./launcher enter app
rails c
UserAssociatedAccount.where(provider_name: "twitter").delete_all

I miei link di Twitter non vengono più incorporati dopo aver configurato l’accesso tramite Twitter. Per prima cosa ho configurato le chiavi consumer di Twitter, l’accesso non ha funzionato come previsto. Ora sono sul piano “Elevated”, quindi dovrei avere accesso agli endpoint v1.1.

L’accesso ora funziona come previsto, ma quando ricostruisco un post con link di Twitter, rimangono solo link semplici.

Quando ricostruisco un vecchio post che ha già tweet incorporati, gli incorporamenti vengono rimossi.

Qualche idea?

\u003e EDIT: Sembra che questo problema sia stato risolto nell’aggiornamento più recente (2.9.0.beta5 - 0ae7b43018)

1 Mi Piace

Ho un problema con questo, nel senso che le immagini appaiono corrotte. Esempio:

Qualche idea…? È tutto aggiornato :confused:

1 Mi Piace