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:
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).
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
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.