معاينات Onebox لا تعمل لموقعي

لدي موقع قمت بإضافة علامات OpenGraph المطلوبة إليه، ولكنه لا يعرض أي معاينات Onebox. إنه يجتاز التحقق من OpenGraph، لذلك أشك في أنها مشكلة في الترميز.

(لا يمكنني نشر رابط إلى المدقق، لأنني مستخدم جديد)

يمكنني ملاحظة من جانب الخادم أنه يخدم بالفعل الصفحات لروبوت Discourse:

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

لكن الروابط لا تظهر ببساطة:

لقد اعتقدت أن المشكلة قد تكون بسبب أننا نعيد استجابة HTTP 505 Version Not Supported لطلبات HEAD، بناءً على هذا الموضوع. لذلك قمت بتصحيح خادمنا لإعادة استجابة 200 OK شكلية لطريقة HEAD:


> 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

ومع ذلك، هذا لا يزال لا يعمل.

إعجاب واحد (1)

أهلاً بك :wave:

هل يمكنك التحقق مما إذا كان خادمك لا يحظر الطلبات؟ على حد علمي، أحصل على 400 كرمز خطأ (عندما أنظر إلى استجابة جلب Discourse)

إعجابَين (2)

حسنًا، لقد أعدت تكوين الموقع لمعاملة طلبات HEAD بنفس طريقة طلبات GET.

يحتوي الموقع على سياسة أمان تُرجع 400 ما لم يرسل العميل سلسلة وكيل مستخدم تبدأ بالسلسلة "Discourse Forum Onebox" ورأس Accept-Language: *. أنا قادر على تجاوز التصفية باستخدام curl بالإعدادات التالية:

$ 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
< 

هل هناك طريقة يمكنني من خلالها رؤية استجابة جلب Discourse؟

من وجهة نظري، إنها طلب GET، ويتم تمرير رأس User-Agent فقط. حاليًا، يُرجع طلبًا سيئًا.

لا أعتقد أن هناك طريقة مباشرة لرؤية الاستجابة؛ لقد أضفت بعض سجلات التصحيح مباشرة في الكود.

إعجاب واحد (1)

آه، هذا هو السبب، كان هناك مرشح على ترويسة Accept-Language، والتي لا يرسلها الروبوت مع جميع الطلبات. شكراً جزيلاً لك!

3 إعجابات

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