Onebox-Vorschauen funktionieren nicht für meine Seite

Ich habe eine Website, zu der ich die erforderlichen \u003cmeta OpenGraph-Tags hinzugefügt habe, aber sie zeigt keine Onebox-Vorschauen an. Sie besteht die OpenGraph-Validierung, daher bezweifle ich, dass es sich um ein Markup-Problem handelt.

(Ich kann keinen Link zum Validator posten, da ich ein neuer Benutzer bin)

Ich kann auf der Serverseite beobachten, dass tatsächlich Seiten für den Discourse-Bot bereitgestellt werden:

User-Agent: 'Discourse Forum Onebox v3.3.0.beta1-dev'
IP Address: 2602:fd3f:3:204:0:242:ac11:2d

aber die Links erscheinen einfach nicht:

Ich habe in Betracht gezogen, dass das Problem darin liegen könnte, dass wir für HEAD-Anfragen 505 HTTP Version Not Supported zurückgeben, basierend auf diesem Thread. Daher habe ich unseren Server so angepasst, dass er eine oberflächliche 200 OK-Antwort für die HEAD-Methode zurückgibt:


> HEAD / HTTP/1.1
> Host: swiftinit.org
> User-Agent: curl/7.81.0
> Accept: */*

< HTTP/1.1 200 OK
< host: swiftinit.org
< access-control-allow-origin: *
< content-length: 0
< content-type: text/html; charset=utf-8

Dies funktioniert jedoch immer noch nicht.

1 „Gefällt mir“

Hallo, willkommen :wave:

Können Sie prüfen, ob Ihr Server die Anfragen nicht blockiert? Soweit ich das sehe, erhalte ich den Fehlercode 400 (wenn ich mir die Discourse-Fetch-Antwort ansehe).

2 „Gefällt mir“

Ich verstehe, ich habe die Website so konfiguriert, dass HEAD-Anfragen identisch mit GET-Anfragen behandelt werden.

Die Website hat eine Sicherheitsrichtlinie, die 400 zurückgibt, es sei denn, der Client sendet eine User-Agent-Zeichenfolge, die mit der Zeichenfolge \"Discourse Forum Onebox\" beginnt, und einen Accept-Language: *-Header. Ich kann den Filter mit curl mit den folgenden Einstellungen passieren:

$ curl -v -I --http1.1 \
    -A 'Discourse Forum Onebox v3.3.0.beta1-dev' \
    -H 'Accept-Language: *' \
    https://swiftinit.org -o /dev/null
> HEAD / HTTP/1.1
> Host: swiftinit.org
> User-Agent: Discourse Forum Onebox v3.3.0.beta1-dev
> Accept: */*
> Accept-Language: *
>
< HTTP/1.1 200 OK
< host: swiftinit.org
< link: <https://swiftinit.org/>; rel="canonical"
< etag: "8898806577480f6f7e5241ff270a9201"
< access-control-allow-origin: *
< content-length: 18933
< content-type: text/html; charset=utf-8
<

Gibt es eine Möglichkeit, die Discourse-Fetch-Antwort zu sehen?

Nach meinem Dafürhalten handelt es sich um eine GET-Anfrage, und es wird nur der User-Agent-Header übergeben. Derzeit wird eine Bad Request-Meldung zurückgegeben.

Ich glaube nicht, dass es eine direkte Möglichkeit gibt, die Antwort zu sehen; ich habe einige Debug-Logs direkt in den Code eingefügt.

1 „Gefällt mir“

ah, das war’s, es gab einen Filter für den Accept-Language-Header, den der Bot nicht mit allen Anfragen sendet. Vielen Dank!

3 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.