
تُعتبر Flows محرك أتمتة قوي يسمح بالسحب والإفلات لإنشاء تدفقات اتصالات. في البداية قمنا بتصميمه كحل بدون كود، لكننا وجدنا أن العديد من المستخدمين يمكنهم الحصول على سلوك قوي للغاية من خلال كتابة بعض الأكواد لحالات استخدام محددة. يمكن أن تكون هذه الأكواد داخل Flow Builder، أو يمكن أن تكون وظائف سحابية من جهات خارجية مثل وظائف AWS Lambda أو وظائف Google Cloud.
هذه مجرد مظاهرة بسيطة باستخدام GoogleCloud Functions وFlows للقيام بالتعرف على الصور للصورة المرسلة على Telegram.
التدفقات وما بعدها
بصفتي مطورًا لمخططات Flows، أفكر غالبًا في من هم مستخدمونا، ولماذا يستخدمون Flows، وما الذي يحتاجونه لتحقيق أهدافهم؛ ثم، ما هي الميزات التي نحتاج إلى تنفيذها لخدمة هؤلاء المستخدمين بأفضل شكل.
Flows هو محرك أتمتة قوي يعتمد على السحب والإفلات لإنشاء تدفقات التواصل. في البداية قمنا بتصميمه كحل بدون كود، لكننا وجدنا أن العديد من المستخدمين يمكنهم الحصول على سلوك قوي جدًا بكتابة بعض الأكواد لحالات الاستخدام الخاصة. يمكن أن تكون هذه الأكواد داخل Flows، أو يمكن أن تكون وظائف سحابية من أطراف ثالثة مثل وظائف AWS Lambda أو Google Cloud Functions.
حالة استخدام مثيرة للاهتمام: التعرف على الصور
لكمثال قصير ومضحك، سأريك كيفية تنفيذ تطبيق يعرف النقانق. سنقوم بإعداد سير في Flows، والذي سيستقبل الصور من المستخدمين ويقرر ما إذا كانوا أرسلوا صورة نقانق أم لا.
بالنسبة للعديد من عملائنا، يمكن أن يكون هذا النوع من التعرف على الصور قويًا جدًا. تخيل أنك تدير خدمة توصيل وترغب في التحقق من إتمام التسليم تلقائيًا. مشابه لما سأعرضه، يمكنك استخدام بيانات الموقع، وصور الطرود، وحتى توقيعات المستلمين لإنشاء تدفق تحقق في Flows.
خطة للنجاح
إعداد وظيفة Google Cloud
أولاً، نحتاج إلى إعداد وظيفة سحابية. للبدء بسرعة، قم بإنشاء وظيفة سحابية باستخدام هذا الدليل: https://cloud.google.com/functions/docs/quickstart-console. كـ ‘Trigger’ اختر HTTP trigger، بيئة التنفيذ: Node.js 10، وفي حقل الشيفرة المصدرية أدخل قطعة الشيفرة. إنها شيفرة بسيطة، تتحقق مما إذا كان الطلب يحتوي على شيفرة JSON وتجيب بنعم أو لا.

التالي، ستحتاج إلى نشر هذه الوظيفة. لاختبارها داخل منصة السحابة من Google، اتبع الخطوات من الدليل.
لاختبارها من متصفحك، اذهب إلى عنوان URL التالي بإدخال العنوان المحدد لوظيفتك:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
يجب أن يُرجع {“isHotDog”: true} والعنوان https://your-function-address.cloudfunctions.net/HotDogOrNot
يجب أن يُرجع {“isHotDog”: false}.
عمل جيد! لقد قمت بإعداد وظيفة سحابية من Google. الآن نحتاج لجعل وظيفتنا السحابية أكثر ذكاءً.
إعداد واجهة برمجة تطبيقات Google Vision
لنجعله أكثر ذكاءً، دعونا نضيف التعرف على الصور. لهذا الغرض، سنستخدم Google Vision API. للبدء، اتبع الخطوات من 1-4 في هذا الدليل: https://cloud.google.com/vision/docs/quickstart-client-libraries. في الدليل، ستقوم بتفعيل Vision API وإنشاء حساب خدمة لاستخدامه.
الآن عد إلى الوظيفة السحابية التي أنشأتها. حرك "بيئة المتغيرات، الشبكات، المهلات والمزيد" وفي ملف "حساب الخدمة" اختر حساب خدمة VisionAPI الذي قمت بإنشائه للتو. الآن يمكننا الوصول إلى Vision API داخل وظيفتنا.

الآن دعونا نغير الكود. في علامة تبويب "Package.json"، أدخل هذا الكود. سيضيف مكتبة Google Vision API كاعتماد لوظيفتك.
في علامة التبويب "Index.js" قم بتحديث الكود الموجود بالمقتطف التالي.

ما الفرق مقارنة بالإصدار السابق؟ لقد أضفنا طلب إلى VisionAPI، والذي يعيد ‘التسميات’ التي وجدها على الصورة. ثم نقوم بتصفية هذه التسميات حسب الوصف: إذا كان يتضمن "هوت دوغ" وإذا كان لديه أكثر من 60% من الثقة في تلك التسمية. إذا كان هناك على الأقل تسمية واحدة متبقية بعد التصفية، فهذا يعني أننا وجدنا هوت دوغ على الصورة.
لفهم كيفية عمل Google VisionAPI وكيف يبدو الاستجابة، راجع توثيقهم، https://cloud.google.com/vision/docs
بعد ذلك، قم بنشر الإصدار الجديد من وظيفتنا. لاختباره من متصفحك، ابحث عن أي صورة لهوت دوغ واحفظ عنوان URL الخاص بها. الآن اذهب إلى URL الخاص بوظيفتك (بإدخال العنوان الصحيح لوظيفتك) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
واستبدل "url_to_image" بعنوان URL للصورة التي وجدتها. إذا كان هناك هوت دوغ في الصورة، ستظهر الصفحة {“isHotDog”: true}.
الآن دعونا نوصل هذه الوظيفة إلى Flow Builder.
إنشاء تدفق في Flows
قم بتسجيل الدخول إلى لوحة التحكم الخاصة بـBird أو اشترك للحصول على حساب إذا لم يكن لديك حساب.
إذا كنت جديداً على Flows وليس لديك أي قنوات معدة، ستحتاج إلى الذهاب إلى صفحة إعداد القناة، واختيار إعداد قناة تليجرام. لقد اخترت تليجرام لهذا العرض لأنه سهل وسريع الإعداد.

الآن لديك قناة يمكننا استخدامها في Flows. انتقل إلى صفحة Flows، وقم بإنشاء تدفق مخصص جديد، واختر قناة "Telegram" كعامل محفز.

سيتم إعادة توجيهك إلى صفحة التدفق، حيث يجب أن تختار قناة تليجرام الخاصة بك كعامل محفز، في حالتنا هي "Hotdog". يرجى إضافة خطوتين: "جلب المتغيرات" و"الرد على رسالة القناة".
داخل خطوة "جلب المتغيرات" سوف نقوم باستدعاء دالة السحابة الخاصة بنا واسترجاع الرد في متغير "isHotDog" الذي سيحتوي على "true" أو "false" كرد من دالة جوجل السحابية. في حقل URL يرجى إدخال URL لوظيفتك https://your-function-address.cloudfunctions.net/HotDogOrNot
وملء جميع الحقول الأخرى كما في الصورة "محتوى خطوة جلب المتغير".
وفي داخل خطوة "الرد على رسالة القناة" سوف نرد على العميل برسالة تحتوي على إجابة نعم أو لا. لذلك قم بإدراج في حقل "الرد بالرسالة" النص التالي "هل يوجد Hotdog في الصورة؟ {{isHotDog}}".


إذا واجهت أي مشكلة في بناء التدفق، يمكنك استخدام المقتطف التالي:

لاختباره، أرسل صورة إلى البوت الخاص بك على تليجرام.
حتى الآن، يبدو الأمر رائعاً! لقد أنشأنا بوت دردشة صغير يتحقق من الصور التي يرسلها العملاء. لجعلها أجمل، لنضف بعض الخطوات الأخرى كما هو موضح أدناه:

إذا واجهت أي مشكلة في بناء التدفق، يمكنك استخدام المقتطف التالي:
النتائج


بينما يعد هذا مثالاً ممتعًا، نعتقد أن هذا النوع من الوظائف يمكن أن يكون مفيدًا جدًا لمستخدمينا.
إذا كنت تريد المزيد من الميزات مثل هذه المدمجة في Flows، فاكتب إلى فريق الدعم لدينا لإعلامنا.