Um dem Discourse-Team gegenüber ganz fair zu sein, unterscheidet sich dies von dem Problem im Dezember 2020. Der allerletzte Beitrag zu diesem anderen Problem war direkt vor @dnfoz’s erstem Beitrag hier und stammte von vor über einem Jahr. @dnfoz’s Problem wurde erst vor 8 Tagen gepostet, nicht vor Monaten. Das Problem ist, dass Twitter ständig seine API ändert, weil sie – ehrlich gesagt – keine Ahnung haben, was sie mit ihrer Plattform erreichen wollen. Deshalb wird ein Problem vor einem Jahr völlig anders sein als eines, sagen wir, vor einer Woche, insbesondere bei Twitter. Und wenn dies ein Problem vor Monaten gewesen wäre, hätten Sie oder jemand anderes es außerhalb von Osmose und Gedankenlesen posten müssen, damit sie es wissen.
Es scheint zu funktionieren, außer dass bei der Anmeldung das E-Mail-Feld nicht automatisch ausgefüllt wird? Mache ich etwas falsch? Funktioniert mit meiner Google-Anmeldung, wo die E-Mail automatisch ausgefüllt wird.
Siehe das Beispiel von @dnfoz. Es liegt daran, dass jeder SSO-Anbieter anders ist, was bedeutet, dass Google es etwas anders macht als Twitter, und Twitter ist eines der schlechtesten, wenn nicht sogar das schlechteste. Twitters API ist ein sich bewegendes Ziel, weil Twitter nicht weiß, was zum Teufel sie tun, und Twitter keine Rücksicht auf die Entwickler nimmt, die um ihre API herum aufbauen. Um ehrlich zu sein, es sei denn, wir Discourse-Administratoren oder das Discourse-Team sind ständig hinter diesem Plugin her, um Änderungen von Twitter zu berücksichtigen, wird es ständig so kaputt gehen.
Vielen Dank dafür. Ja, ich glaube nicht, dass ich noch mehr Zeit mit dem Erlernen und Herumspielen mit Twitter-APIs verschwenden sollte, die sich, wie Sie sagen, jederzeit ändern könnten. Ich bin sicher, meine Benutzer werden damit zurechtkommen!
Das heißt nicht, dass das Discourse-Team nicht bereits an einer Lösung arbeitet, was es auch tut, und es erfordert möglicherweise nichts weiter als ein Update des Plugins, damit es auf der Admin-Seite wieder funktioniert. Das Problem ist, dass dies ein gewohnheitsmäßiges Problem mit Twitter ist, da es sich um ein schlecht geführtes Unternehmen handelt. Ich werde mein Twitter SSO-Plugin weiterhin als Option beibehalten, aber Twitter ist definitiv keine sichere und zuverlässige Option wie alle anderen SSOS.
Wenn wir diese Probleme immer noch haben, können wir versuchen, dasselbe Problem auf try.discourse.org zu reproduzieren? Ich konnte mich dort problemlos mit meinem Twitter-Konto anmelden.
Wow, die Anmeldung mit Twitter auf dem Forum der try-Subdomain, das du gerade geteilt hast, schien einwandfrei zu funktionieren. Das lässt mich wirklich fragen, ob es eine Plugin-Kollision oder eine einzigartige Konfiguration gibt.
So seltsam. Ich bekomme immer noch das seltsame Verhalten auf meiner Website. Es ist die Produktion, daher kann ich nicht zu viele Dinge umschalten, aber ich werde mein Bestes tun, um es herauszufinden. Es darf nicht so einzigartig sein, wenn auch andere Benutzer dies melden.
Im Vergleich zum übergeordneten Beitrag hier hat Twitter die Konfiguration von Einstellungen visuell verändert. Hier ist, was ich für meine Discourse-Instanz konfiguriert habe (zumindest die Einstellungen, die sicher öffentlich im Forum geteilt werden können):
EDIT: Das könnte etwas sein. Obwohl es immer noch eine Option gibt, E-Mails von Benutzern anzufordern, gibt es keine Einstellung mehr für Drittanbieter-Authentifizierung aktivieren, wie im übergeordneten Beitrag erwähnt. Für Leute, die ihr Twitter-Login vor dieser Änderung in ihren Einstellungen konfiguriert hatten, ist das vielleicht kein Problem, da Twitter sie möglicherweise Bestandskunden behandelt und ihre Einstellungen migriert. Ich sehe diese Option jedoch nicht mehr, was ein Problem für Benutzer wie mich und @dnfoz darstellen könnte, die unsere Foren zum ersten Mal konfigurieren und Discourse eine Drittanbieter-Authentifizierung benötigt, um den SSO-Handshake-Prozess erfolgreich abzuschließen.
EDIT 2: Hier ist noch etwas zum Nachdenken. Erwartet Discourse die Twitter API v1 oder v2? Für neue Entwickler bieten sie v1 nicht mehr an, da sie nur die Migration für diejenigen erwähnen, die v1 bereits nutzten, ohne Erwähnung der Legacy-v1-Unterstützung für neue Benutzer. Details finden Sie hier:
Wie im obigen Link beschrieben, scheint es, dass sie nur bestehenden Entwicklerkonten erlauben, v1 zu migrieren. Ich sehe keine Möglichkeit oder Dokumentation, v2 für neue Entwicklerkonten zu aktivieren, und daher habe ich nur v2-Unterstützung.
Unter der Annahme, dass SSO und Embedding Twitter API v1 erwarten, könnte dies einige Programmieraufwände erfordern, um beide API-Versionen zu unterstützen, oder die Unterstützung von v1 einzustellen, falls ein solcher zweigleisiger Ansatz nicht möglich ist.
EDIT 3: Beim Lesen des Discourse-Forums von Twitter Developers (oh, die Ironie, dass Twitter selbst Discourse nutzt!) scheinen sich meine Vermutungen weitgehend bestätigt zu haben. Laut ihrem angepinnten Banner (hier einsehbar: Twitter Developers (twittercommunity.com)) können neue Entwickler nicht auf die v1.1 API zugreifen:
\u003e ## Sind Sie neu auf der Plattform und bereit loszulegen?
\u003e
\u003e Wir ermutigen Sie, sich für Essential Access anzumelden und Ihren ersten Request an die API zu senden.
\u003e
\u003e Sobald Sie sich angemeldet haben, erhalten Sie ein Projekt mit Essential Access in Ihrem Konto, das Ihnen Folgendes bietet:
\u003e
\u003e * 1 App-Umgebung
\u003e * Die Möglichkeit, bis zu 500.000 Tweets pro Monat abzurufen
\u003e * Die Möglichkeit, bis zu 5 Regeln mit dem gefilterten Stream-Endpunkt zu verwenden
\u003e * Zugriff auf die meisten Twitter API v2-Endpunkte
\u003e * Sie können nicht auf die Standard v1.1, Premium v1.1 oder Enterprise Endpunkte zugreifen
Ja, das ist genau das, worauf ich bei songwritingsteps.com hinaus will – es füllt „user1“ und keine E-Mail aus.
Bitte lassen Sie mich wissen, ob Sie es herausfinden! Ich habe stundenlang mit dem Kopf gegen die Wand geschlagen ![]()
Nein, keine Ahnung! Ich kann jederzeit ein Forum in einer VM auf meinem lokalen Rechner aufsetzen und sehen, ob ich herausfinden kann, was los ist. Aber im Moment gibt es noch keine Hinweise. Ich rate ins Blaue hinein, aber wie erwähnt, vermute ich, dass es die V1 API-Unterstützung erwartet, die das Problem verursacht. Die notwendige V1-Legacy-Unterstützung ist für neue Entwicklerkonten einfach nicht mehr vorhanden, wie ich gerade mitgeteilt habe.
Danke! Das ist großartige Recherche, @Hifihedgehog. Wir prüfen den besten Weg nach vorne und werden ein Update bereitstellen, sobald wir eines haben.
Danke für Ihre Geduld, alle zusammen.
Ich glaube nicht, dass Sie soziale Logins auf einem lokalen Rechner konfigurieren können. Sie benötigen ein gültiges HTTPS-Zertifikat. Haben Sie ein gültiges Zertifikat, um auf die VM auf Ihrem lokalen Rechner zuzugreifen?
Eigentlich ist es nicht allzu schwierig: Ich könnte einen SSH-Tunnel von meinem VPS zu meiner lokalen Maschine einrichten und ihn dann auf einen Proxy auf meinem Webserver verweisen lassen, der bereits ein SSL-Zertifikat hat. ![]()
Ok, ich glaube, wir konnten das Rätsel lösen ![]()
Wie @Hifihedgehog bemerkte, beginnen neue Twitter-Entwicklerkonten mit dem „Essential“-Tarif und sind auf die Endpunkte der v2-API beschränkt. Unser integriertes Twitter-Login muss derzeit auf Endpunkte der v1.1 zugreifen. Zum Glück ist das kein Problem!
Es gibt zwei wichtige Dinge, die man auf dieser Tabelle unter X API v2 - X beachten sollte
Sie können kostenlos über den Elevated-Tarif auf die v1.1-API zugreifen. Sie müssen sich einfach von Ihrem Entwickler-Dashboard aus bewerben. Ich fand es sehr schnell und einfach. Discourse Twitter-Logins funktionierten danach einwandfrei ![]()
Ich werde den OP aktualisieren, um diese neu entdeckte Anforderung aufzunehmen.
Junge, da haben Sie Recht! Das hat nur ein paar Minuten gedauert und ich wurde sofort genehmigt. Einfache Lösungen sind immer schön! ![]()
8 Beiträge wurden in ein neues Thema aufgeteilt: Zitat funktioniert nicht, wenn der Name mit dem Benutzernamen übereinstimmt
Wenn der Twitter-Geheimcode oder -Schlüssel aktualisiert wird, hat dies Auswirkungen auf bestehende Benutzer? Wenn ja, gibt es eine Möglichkeit, dies zu „beheben“? Ich habe diese Anweisungen für Updates der Facebook-Anmeldung gefunden. Wäre dies das richtige Skript zur Verwendung?
cd /var/discourse
./launcher enter app
rails c
UserAssociatedAccount.where(provider_name: "twitter").delete_all
Meine Twitter-Links werden nicht mehr eingebettet, nachdem ich das Twitter-Login eingerichtet habe. Zuerst habe ich die Twitter-Consumer-Schlüssel eingerichtet, das Login funktionierte nicht wie erwartet. Jetzt bin ich auf dem „Elevated“-Plan, sodass ich Zugriff auf den Endpunkt v1.1 haben sollte.
Das Login funktioniert jetzt wie erwartet, aber wenn ich einen Beitrag mit Twitter-Links neu erstelle, bleiben sie nur als einfache Links bestehen.
Wenn ich einen alten Beitrag, der bereits Tweets eingebettet hat, neu erstelle, werden die Einbettungen entfernt.
Irgendwelche Hinweise?
EDIT: Dies scheint in der neuesten Version (2.9.0.beta5 - 0ae7b43018) behoben worden zu sein.




