Discourse Hub Android-Mobil-App kann privaten Server nicht finden

Mein privater Discourse-Server funktioniert und ist über den Browser und die iOS-Mobil-App zugänglich.

Allerdings kann Discourse Hub den Server unter Android nicht finden. (Es kann andere Server wie meta.discourse.org finden.)

Irgendeine Idee, warum dies fehlschlägt? Könnte es sein, dass die Android-Mobil-App einen anderen Crawler-Agent verwendet, um auf den Server zuzugreifen, als die iOS-Version? Oder ein anderer Grund?

Ja, die mobile App stellt einige spezifische Anfragen, um festzustellen, ob die URL ein Discourse-Server ist.

Es gibt zwei Anfragen:

  • eine HEAD-Anfrage an serverdomain.com/user-api-key/new
  • eine GET-Anfrage an serverdomain.com/site/basic-info.json

Wenn eine davon keine Daten zurückgibt, geht die App davon aus, dass die URL keine Discourse-Seite ist.

1 „Gefällt mir“

Am hilfreichsten, @pmusaraj! Vielen Dank. Zur Nachverfolgung:

1- Die GET-Anfrage erhält eine Antwort, aber die HEAD-Anweisung wirft einen Fehler „Wert ist ungültig“. (Dies gilt auch für meta.discourse.org, aber beide mobilen Apps können eine Verbindung zu dieser Instanz herstellen.) Wie ändere ich den Server, um eine ordnungsgemäße Antwort auf die HEAD-Anfrage zu liefern?

2- Warum besteht die iOS-Version diese Tests erfolgreich und stellt eine Verbindung zu meinem Server her?

1 „Gefällt mir“

Ah, das ist ein Hinweis darauf, dass die Discourse-Seite höchstwahrscheinlich in Ordnung ist, die Seitenüberprüfung ist auf iOS und Android dieselbe.

Ich erinnere mich, dass einige Android-Versionen/Geräte bei SSL-Zertifikaten strenger waren, es gab eine ähnliche Situation in der Vergangenheit, aber schon lange her: Community not found in App Android Version 7 - #37 by h.vdheurik

1 „Gefällt mir“

Für das, was es wert ist, ein Freund von mir hat dies mit einem Standard-Android mit demselben Ergebnis getestet. Mein Gerät ist ein Pixel 8a mit der neuesten Version von GrapheneOS.

Könnte dies eine neue Cypher-Inkompatibilität sein, ähnlich der, auf die Sie sich von 2017 bezogen haben?

Ich weiß es nicht. Wenn Sie mir die Website-URL privat senden möchten, kann ich etwas weiter debuggen.

Wir haben die Crawler überprüft. Mein Server hat viele Crawler blockiert, und es scheint, dass einer von ihnen die Verbindung der mobilen App verhindert hat. Nach dem Zurücksetzen auf die Werkseinstellungen konnte die App eine Verbindung herstellen.

Dann habe ich OkHttp als einzigen erlaubten Crawler hinzugefügt, und die mobile App konnte sich immer noch verbinden. Krise abgewendet. :slight_smile:

Vielen Dank an @pmusaraj für die Überprüfung des Android-App-Codes und die Erarbeitung dieser Lösung.

2 „Gefällt mir“