يوفر Vimeo نوعين من الروابط: روابط مباشرة (https://vimeo.com/508864124/fcbbcc92fa) وروابط تضمين (يمكن استخدامها في إطار iframe، ولكنها لن تعمل إذا تم النقر عليها مباشرة)
عند إرسال هذا كبريد إلكتروني للإشعارات، يظهر الرابط المباشر بشكل صحيح، ولكن يتم استبدال إطار iframe برابط بعنوان URL غير صحيح: https://vimeo.com/508864124?h=fcbbcc92fa بدلاً من https://player.vimeo.com/video/508864124?h=fcbbcc92fa
والأسوأ من ذلك، إذا تمت إضافة شرطة مائلة لاحقة (صالحة) في رابط التضمين، تتم إزالة معرف الفيديو في البريد الإلكتروني: <iframe src="https://player.vimeo.com/video/508864124/?h=fcbbcc92fa" ...></iframe> يصبح https://vimeo.com/?h=fcbbcc92fa
هل هناك طريقة لتجاوز تحويل إطار iframe إلى عنوان URL تمامًا؟ تمامًا كما نفعل بالفعل مع الاستطلاعات، حيث يظهر شيء مثل “انقر هنا لرؤية الاستطلاع”
لقد قدمت طلب سحب (PR) للإصلاح، أعتقد أن المشكلة كانت في نمط التعبير العادي (regex). لم يلتقط الـ vimeo بشكل صحيح عندما لا يكون من النوع القياسي. وبالتالي قمت بتغيير نمط التعبير العادي وفقًا لذلك.
نعم. التغيير الذي أجريته على التعبير النمطي جعل من الممكن التعرف على عناوين URL الخاصة بـ iframe src (https://player.vimeo.com/video/508864124?h=fcbbcc92fa)، لذا لم تعد هذه مشكلة. المشكلة تكمن في البريد الإلكتروني الذي يتم إرساله.
إذا قمت بلصق عنوان URL عادي (https://vimeo.com/508864124/fcbbcc92fa)، فلا توجد مشكلة. إنها مشكلة فقط مع iframe src (https://player.vimeo.com/video/508864124?h=fcbbcc92fa).
إنه يعمل حاليًا.
نعم. حاليًا، يتم تحويل iframe src (https://player.vimeo.com/video/508864124?h=fcbbcc92fa) إلى هذا: https://vimeo.com/508864124?h=fcbbcc92fa بدلاً من هذا: https://vimeo.com/508864124/fcbbcc92fa
لا يزال من الصعب عليّ إعادة إنتاجه لأنني بحاجة إلى حساب مميز للفيديوهات غير المدرجة على Vimeo.
أعتقد أيضًا أن مثال الفيديو الخاص بك أعلاه يسمح فقط بالتحميل من نطاقات معينة، هل يمكنك السماح لنسخة الاختبار الخاصة بي بتحميله أيضًا: https://discuss.gsgapp.io.
مرة أخرى، ولأكون واضحًا تمامًا، أنت لا تتوقع تشغيل الفيديو في البريد الإلكتروني، ولكنك تتوقع عندما ينقر الأشخاص على موضع الفيديو أن يتم توجيههم إلى عنوان URL الصحيح؟ هل أنا على حق في ذلك؟
إذًا ما يحدث هو أنه عند لصق كود iframe عادي، فقد تتجاوز كود onebox، وإذا قمت بتمريره فلن يحتوي كود iframe الناتج على data-original-href وهو الرابط المستخدم في قالب البريد الإلكتروني.
وعندما يكون data-original-href مفقودًا، يحاول discourse تخمين الفيديو، وهو ما يأتي بعد الشرطة المائلة الأخيرة، وهذا بالطبع لا يغطي حالة الفيديو غير المدرج.
على سبيل المثال، إذا قمت بفحص أدوات المطور/عنصر الفحص من متصفحك، فإن كود iframe الناتج عند استخدام كود iframe عادي:
لذا لاحظ data-original-href="https://vimeo.com/508864124/fcbbcc92fa" الإضافي في الناتج الثاني، قد يخمن المرء أنه إذا كان هذا السمة عند استخدام iframe عادي فسيعمل، ولكنه لا يعمل ربما لأن discourse لا يسمح لك بإضافة أي سمة تريدها…
أعتقد أنه يمكنني اقتراح حل، وبينما أضمن أنه سيعمل في حالة إدراج الفيديو/جعله عامًا، توصلت إلى هذا السلوك غير المعتاد لـ Vimeo. عادةً ما تتبع جميع مقاطع الفيديو العامة هذا النمط vimeo.com/{id}، ومع ذلك، سيعمل إذا أضفت شرطة مائلة، أي vimeo.com/{id}/anything
ضع في اعتبارك المثال التالي:
https://vimeo.com/767548129/estgsetgset
https://vimeo.com/767548129/hey-discurse
https://vimeo.com/767548129الحالة العادية
كل ما سبق يؤدي إلى نفس الفيديو، لذا يمكن أن يكون الحل هو إنشاء عنوان URL من مصدر iframe، vimeo.com/{ما يأتي بعد الشرطة المائلة الأولى}/{ما يأتي من h=}. هذا سيجعله يعمل في كلتا الحالتين.
في جميع الحالات، أدى ذلك إلى قيام البريد الإلكتروني بإنشاء عنوان URL الصحيح.
ولكن على أي حال، يرجى محاولة الاختبار لجميع الاختلافات الممكنة الأخرى التي قد تواجهها، والأهم من ذلك، أنه لا يكسر أشياء أخرى.
الطريقة التي اختبرت بها قالب البريد الإلكتروني هي أنني كنت أرسل لنفسي رسالة مباشرة، ثم أتحقق من صندوق الوارد للبريد الإلكتروني. (نظرًا لأن لدي حسابين مسجلين على https://discuss.gsgapp.io)