Backend-Code

Hallo,

ich versuche, einen Weg zu finden, Code im Backend auszuführen.

Das ultimative Ziel ist es, die Maxmind API aufzurufen und Benutzer, die von außerhalb von Quebec kommen, auf eine andere Website umzuleiten.

Ich habe diesen Beitrag gefunden und verstehe, dass ich dafür ein selbst gehostetes Discourse verwenden müsste.

Gibt es eine Möglichkeit, das, was ich versuche zu tun, mit dem Pro-Plan zu erreichen?

Viele Grüße,

Julien

Ich kenne die Antwort leider nicht, aber du solltest zweimal über eine solche Lösung nachdenken. Geo-IP ist sehr unzuverlässig.

Dafür müssen Sie ein Plugin schreiben. Siehe Entwicklung von Discourse-Plugins – Teil 1 – Erstellen eines einfachen Plugins.

Keine API-Aufrufe erforderlich, da Discourse die MaxMind-Integration von Haus aus mitbringt und Sie einfach DiscourseIpInfo.get(ip) aus Ihrem Plugin aufrufen können.

Wenn Sie auf unserem Hosting sind, kontaktieren Sie bitte unseren Support. Wir können Ihnen bei benutzerdefinierten Plugins in unserem Enterprise-Plan helfen.

3 „Gefällt mir“

Sie müssen ein Plugin dafür schreiben. Siehe Entwicklung von Discourse-Plugins – Teil 1 – Erstellen eines einfachen Plugins.

Aber kann ich dieses Plugin mit der SaaS-Version von Discourse (mit dem Pro-Plan) verwenden?

Keine API-Aufrufe erforderlich, da Discourse standardmäßig mit MaxMind-Integration geliefert wird und Sie einfach DiscourseIpInfo.get(ip) von Ihrem Plugin aus aufrufen können.

Ist dies präzise genug, um Benutzer nur aus Quebec, Kanada, anzusprechen? Die meisten GeoIP-Dienste, die ich gefunden habe, hatten eine Länderspezifität, konnten aber keine bestimmte Provinz in Kanada ansprechen.

Wenn Sie bei uns hosten, kontaktieren Sie bitte unseren Support. Wir können Ihnen mit benutzerdefinierten Plugins in unserem Enterprise-Plan helfen.

Also nicht möglich mit dem Standard-Plan? Ich schätze, der Enterprise-Plan ist mindestens 3x so teuer wie der Pro-Plan.

Schwer zu sagen, hier ist, was ich über meine IP herausgefunden habe:

=> {:country=>"Vereinigte Staaten",
 :country_code=>"US",
 :region=>"Tennessee",
 :city=>"Nashville",
 :latitude=>36.1315,
 :longitude=>-86.8019,
 :location=>"Nashville, Tennessee, Vereinigte Staaten",
 :geoname_ids=>[6255149, 6252001, 4644585, 4662168],
 :asn=>7922,
 :organization=>"COMCAST-7922"}

Es wird eine ganze Reihe von Möglichkeiten geben, wie dies zu falsch positiven oder negativen Ergebnissen führen könnte. Ihre beste Wahl ist eine andere Lösung für das Problem, das Sie mit der Weiterleitung lösen.

Das sieht präzise genug aus, aber viele GeoIP-Dienste sind für IPs aus den USA genauer als für IPs aus Kanada.

Es muss nicht zu 100 % positiv oder negativ sein, es ist eine Möglichkeit, einen ersten Anhaltspunkt zu haben, da der Dienst nur für Personen in Quebec angeboten wird.

1 „Gefällt mir“

Anstatt einer vollständigen Weiterleitung könnten Sie eine Theme-Komponente verwenden, die zum Beispiel, wenn Sie französische Benutzer weiterleiten möchten. Sie könnte vielleicht Local verwenden, um ein Popup auf dem Anmeldebildschirm für die bevorzugte Website für Frankophone zu füllen.

1 „Gefällt mir“

Ich würde empfehlen, dass Sie einfach ein benutzerdefiniertes Feld für Benutzer einfügen, das besagt: „Ich bin in Quebec“, das sie bei der Anmeldung anklicken müssen.

Wenn Sie jedoch ein Plugin wünschen, kann ich Ihnen vielleicht helfen.

1 „Gefällt mir“

Ich würde mich über einen PR für das Locations-Plugin freuen (als Website-Einstellung), um den Standort eines Benutzers automatisch zu ermitteln und diesen in seinem Profil zu speichern, das in diesem Modus schreibgeschützt sein könnte (eine weitere Einstellung), um zu verhindern, dass er ihn selbst ändert (aber möglicherweise auf Anfrage von einem Administrator).

Dann könnten Sie als Bonus alle auf einer Karte sehen :slight_smile:

Sie könnten die Logik in unserem Geo-Blocking-Plugin umdrehen und anstatt bestimmte Regionen zu blockieren, könnten Sie alle außer bestimmten Regionen blockieren. Sollte nicht zu schwer sein - Bonuspunkte für die Person, die es mit einer einzeichenigen Änderung schaffen kann.

Oder Sie können mit communiteq im Professional Plan oder höher hosten. In diesem Fall erweitern wir das Plugin sogar für Ihren Anwendungsfall.

2 „Gefällt mir“