عملية التقديم
لاستخدام واجهة برمجة التطبيقات، يجب أولاً الذهاب إلى صفحة واجهة برمجة تطبيقات فيديوهات Midjourney لتقديم طلب الخدمة المناسبة، بعد الدخول إلى الصفحة، انقر على زر “Acquire”، كما هو موضح في الصورة:
إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل بعد، سيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، بعد تسجيل الدخول أو التسجيل، سيتم العودة تلقائيًا إلى الصفحة الحالية.
عند التقديم لأول مرة، سيكون هناك حد مجاني متاح، يمكنك استخدام واجهة برمجة التطبيقات مجانًا.
الاستخدام الأساسي
أولاً، يجب أن نفهم طريقة الاستخدام الأساسية، وهي إدخال كلمة التلميحprompt، وسلوك التوليد action، ومصفوفة صور الإطار الأول والأخير image_url، للحصول على النتيجة المعالجة، يجب أولاً تمرير حقل action ببساطة، حيث تكون قيمته generate، والتي تتضمن نوعين من السلوك: توليد فيديو (generate)، توسيع فيديو (extend)، المحتوى المحدد كما يلي:

accept: نوع الاستجابة التي ترغب في تلقيها، هنا يتم ملؤها بـapplication/json، أي بتنسيق JSON.authorization: مفتاح واجهة برمجة التطبيقات، بعد التقديم يمكنك اختياره مباشرة من القائمة المنسدلة.
image_url: رابط صورة الإطار الأول المرجعية لتوليد الفيديو.end_image_url: اختياري، يحدد صورة الإطار الأخير المرجعية لتوليد الفيديو.video_id: يجب تحديد معرف الفيديو عند توسيع الفيديو.video_index: يجب تحديد أي فيديو منvideo_idعند توسيع الفيديو، يبدأ الفهرس من 0، والقيمة الافتراضية هي 0.action: سلوك مهمة توليد الفيديو هذه، والتي تتضمن نوعين من السلوك، وهما: توليد فيديو (generate)، توسيع فيديو (extend).prompt: كلمة التلميح.mode: وضع سرعة توليد الفيديو، القيمة الافتراضية هي fast.resolution: دقة الفيديو، القيمة الافتراضية هي 720p.loop: هل يجب توليد فيديو متكرر، القيمة الافتراضية هي false.callback_url: URL الذي يحتاج إلى استدعاء النتائج.

success: حالة مهمة توليد الفيديو في ذلك الوقت.task_id: معرف مهمة توليد الفيديو في ذلك الوقت.image_url: صورة الغلاف لمهمة توليد الفيديو في ذلك الوقت.image_width: عرض صورة الغلاف لمهمة توليد الفيديو في ذلك الوقت.image_height: ارتفاع صورة الغلاف لمهمة توليد الفيديو في ذلك الوقت.video_id: معرف الفيديو لمهمة توليد الفيديو في ذلك الوقت.video_urls: مصفوفة روابط الفيديو لمهمة توليد الفيديو في ذلك الوقت.
video_urls.
بالإضافة إلى ذلك، إذا كنت ترغب في توليد كود التكامل المقابل، يمكنك نسخه مباشرة، على سبيل المثال، كود CURL كما يلي:
وظيفة توسيع الفيديو
إذا كنت ترغب في الاستمرار في توليد فيديو Kling الذي تم إنشاؤه بالفعل، يمكنك تعيين المعلمةaction إلى extend، وإدخال معرف الفيديو الذي تحتاج إلى الاستمرار في توليده، يتم الحصول على معرف الفيديو بناءً على الاستخدام الأساسي.
في هذه الحالة، يمكنك أن ترى أن معرف الفيديو في الفيديو السابق هو:
ملاحظة: هنا، video_id في الفيديو هو معرف الفيديو بعد التوليد، إذا كنت لا تعرف كيفية توليد الفيديو، يمكنك الرجوع إلى الاستخدام الأساسي المذكور أعلاه لتوليد الفيديو.
بعد ذلك، يجب علينا ملء كلمة التلميح التي نحتاج إلى توسيعها لتخصيص توليد الفيديو، ويمكنك تحديد المحتوى كما يلي:
video_index: تحديد فهرس الفيديو الذي سيتم توسيعه، هذا الفهرس هو منvideo_urlsالتي تم إنشاؤها سابقًا، يبدأ الفهرس من 0، والقيمة الافتراضية هي 0.video_id: معرف الفيديو المحدد للتوسيع.action: سلوك توسيع الفيديو في هذه المرة، وهوextend.prompt: كلمة التلميح.


استدعاء غير متزامن
نظرًا لأن وقت توليد API لمقاطع فيديو Midjourney طويل نسبيًا، حيث يحتاج حوالي 1-2 دقيقة، إذا لم يكن هناك استجابة لفترة طويلة، ستظل طلبات HTTP متصلة، مما يؤدي إلى استهلاك موارد النظام الإضافية، لذا فإن هذه API توفر أيضًا دعم الاستدعاء غير المتزامن. العملية العامة هي: عندما يقوم العميل بإرسال الطلب، يحدد حقلcallback_url إضافي، بعد أن يقوم العميل بإرسال طلب API، ستقوم API على الفور بإرجاع نتيجة تحتوي على معلومات حقل task_id، التي تمثل معرف المهمة الحالية. عند الانتهاء من المهمة، سيتم إرسال نتيجة توليد الفيديو إلى callback_url المحدد من قبل العميل عبر POST JSON، والتي تتضمن أيضًا حقل task_id، بحيث يمكن ربط نتيجة المهمة من خلال المعرف.
دعونا نفهم كيفية القيام بذلك من خلال مثال.
أولاً، استدعاء Webhook هو خدمة يمكنها استقبال طلبات HTTP، يجب على المطور استبدالها بعنوان URL الخاص بخادم HTTP الذي قام بإنشائه. هنا، لتسهيل العرض، نستخدم موقع Webhook عام https://webhook.site/، بفتح هذا الموقع يمكنك الحصول على عنوان URL لـ Webhook، كما هو موضح في الصورة:

https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f.
بعد ذلك، يمكننا تعيين حقل callback_url إلى عنوان URL الخاص بـ Webhook المذكور أعلاه، مع ملء المعلمات المناسبة، كما هو موضح في الصورة:

https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f، كما هو موضح في الصورة:

task_id، وجميع الحقول الأخرى مشابهة لما سبق، من خلال هذا الحقل يمكن تحقيق ربط المهام.
معالجة الأخطاء
عند استدعاء API، إذا واجهت خطأ، ستقوم API بإرجاع رمز الخطأ والمعلومات المناسبة. على سبيل المثال:400 token_mismatched: طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صالحة.400 api_not_implemented: طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صالحة.401 invalid_token: غير مصرح، رمز تفويض غير صالح أو مفقود.429 too_many_requests: عدد كبير جدًا من الطلبات، لقد تجاوزت الحد الأقصى لمعدل الطلبات.500 api_error: خطأ داخلي في الخادم، حدث خطأ ما على الخادم.

