يوضح لك هذا المستند كيفية إعداد مثيل فردي لعميل API الخاصة بواتساب للأعمال في مرحلة الإنتاج.
إذا لم تقم بالفعل بذلك، فيوصى بإعداد مثيل فردي لعميل API الخاصة بواتساب للأعمال على جهاز المطوّر باتباع إرشادات إعداد المطوّر: المثيل الفردي لاختبار الإعداد قبل اتباع هذا المستند لإعداد عميل API الخاصة بواتساب للأعمال في مرحلة الإنتاج.
لإكمال الإعداد الأولي، تحقق من المتطلبات واتبع هذه الخطوات:
biz
للبرامج النصية للإعدادWA_API_VERSION
بمجرد إكمال إعداد المثيل، يمكنك اختيار ترقيته. لإلغاء تثبيت العميل، اتبع هذه الخطوات.
إذا قمت بالفعل بتشغيل إعداد المطوّر وكنت تريد استخدام رقم الهاتف في الإنتاج، فيرجى الرجوع إلى دليل الترحيل قبل متابعة بقية محتوى هذا المستند.
يعتمد المحتوى في هذا المستند على افتراض التثبيت الحديث باستخدام رقم هاتف جديد.
ستحتاج إلى ما يلي:
يلزم توفير الإصدار MySQL 5.7xx أو PostgreSQL 13.x/12.x/11.x.
يجب ألا تتضمن كلمة السر الخاصة بقاعدة البيانات الحروف التالية: ?{}&~!()^=
ربما سيتسبب عدم الامتثال بذلك في فشل الإعداد.
توجد أيضًا مشكلة في التوافق مع MySQL 8. يُرجى عدم استخدام الإصدار الأحدث الآن، حيث نعمل على إصلاح هذه المشكلة.
To install Docker Desktop on your developer machine:
The remaining steps are based on macOS and should be very similar for Linux or Windows 10.
To install Docker using macOS:
Docker Compose is a plugin that is bundled with Docker Desktop and should have installed automatically. For more information about using or Docker Compose, see Overview of Docker Compose. If for some reason Docker Compose was not installed, you can install it by following the instructions located at Install Docker Compose.
biz
للبرامج النصية للإعدادقم بتشغيل الرمز التالي في موقعك المفضل لعميل API الخاصة بواتساب للأعمال:
mkdir ~/biz; cd ~/biz;
انسخ ملفي التكوين prod-docker-compose.yml
وdb.env
من دليل التثبيت في مستودع WhatsApp-Business-API-Setup-Scripts GitHub إلى دليل ~/biz
الذي أنشأته في الخطوة الأولى.
WA_API_VERSION
يجب تعيين المتغير البيئي WA_API_VERSION
على الإصدار الحالي باستخدام:
export WA_API_VERSION=current-whatsapp-version
يمكنك تغيير متغيرات بيئة قاعدة البيانات في الملف db.env
ضمن الدليل ~/biz
لعرض تكوين MySQL/PostgreSQL.
WA_DB_ENGINE=MYSQL | PGSQL WA_DB_HOSTNAME=your-database-server WA_DB_PORT=your-database-server-port WA_DB_USERNAME=your-database-username WA_DB_PASSWORD=your-database-password
يتم استخدام وحدة تخزين الوسائط المحلية (whatsappMedia:/usr/local/wamedia
بشكل افتراضي) في الملف prod-docker-compose.yml
لتخزين ملفات الوسائط. يتم افتراضيًا تثبيت وحدة التخزين إلى الدليل في جهاز Docker. بدلاً من ذلك، يمكنك اختيار تثبيت وحدة تخزين الوسائط في دليل المضيف. لتغيير نقطة التثبيت في وحدة تخزين الوسائط، يمكنك تعديل تعريف وحدة التخزين داخل القسم services
من whatsappMedia
إلى مسار دليل المضيف الذي تستخدمه.
services: wacore: ... volumes: - /your-local-media-volume-path:/usr/local/wamedia ... waweb: ... volumes: - /your-local-media-volume-path:/usr/local/wamedia ...
لبدء تشغيل عميل API الخاصة بواتساب للأعمال من خلال حاوية Webapp واحدة وحاوية Coreapp واحدة، قم بتشغيل:
docker-compose -f prod-docker-compose.yml up -d
يجب أن يبدو الإخراج الناتج كما يلي:
Creating biz_wacore_1 ... done Creating biz_waweb_1 ... done
يمكنك التحقق من أن كل الحاويات متوفرة بالحالة UP عن طريق تشغيل:
docker-compose -f prod-docker-compose.yml ps
يجب أن يبدو الإخراج الناتج كما يلي:
Name Command State Ports ------------------------------------------------------------------------------------------------- biz_wacore_1 /opt/whatsapp/bin/wait_on_ ... Up 6250/tcp, 6251/tcp, 6252/tcp, 6253/tcp biz_waweb_1 /opt/whatsapp/bin/wait_on_ ... Up 0.0.0.0:9090->443/tcp
سيتم افتراضيًا تشغيل الحاوية Webapp على المنفذ 9090
.
يمكنك تنزيل مجموعة Postman التي نوفرها وتكوينها للتفاعل مع API الخاصة بواتساب للأعمال إذا كنت لا تريد استخدام سطر الأوامر.
يمكنك إجراء التحقق من سلامة الأداء في عميل API الخاصة بواتساب للأعمال باستخدام استدعاء API إلى العقدة health
.
يجب أن يبدو الإخراج الناتج كما يلي:
{ "health": { "gateway_status": "unregistered" } }
تعرض الاستجابة حالة gateway_status
لـ unregistered
باعتبارها gateway_status
نظرًا إلى أنه لم يتم تسجيل عميل API الخاصة بواتساب للأعمال بعد.
يمكنك تسجيل عميل API الخاصة بواتساب للأعمال باستخدام استدعاء API في العقدة account
.
قم بإجراء التحقق من سلامة الأداء مرة أخرى في عميل API الخاصة بواتساب للأعمال باستخدام استدعاء API إلى العقدة health
بعد إكمال التسجيل.
يجب أن يبدو الإخراج الناتج كما يلي:
{ "health": { "gateway_status": "connected" } }
يشير تعيين gateway_status
على connected
إلى قدرة حاوية Coreapp على الاتصال بخادم واتساب لإجراء التحقق من جهات الاتصال وإرسال الرسائل.
يوصى بإعداد التحقق في عميل API الخاصة بواتساب للأعمال للإنتاج.
ستواجه مشكلة زمن التوقف أثناء عملية الترقية.
يوصى بشدة بإجراء نسخ احتياطي لإعدادات التطبيق الحالية لديك قبل الترقية للتأكد من أنه يمكنك نسخ الإعدادات احتياطيًا وتشغيلها سريعًا. يُرجى اتباع وثائق النسخ الاحتياطي والاستعادة.
نوصي دائمًا بتنفيذ الترقيات خلال الساعات الأقل نشاطًا.
WA_API_VERSION
إلى الإصدار الجديديجب تحديث المتغير البيئي WA_API_VERSION
إلى رقم الإصدار الجديد باستخدام:
export WA_API_VERSION=new-whatsapp-version
أعد تشغيل حاويات Docker من خلال تشغيل:
docker-compose -f prod-docker-compose.yml up -d
v2.23.x
والإصدارات الأحدثويمكنك الآن الاستفادة من خدمة ترقية قاعدة البيانات التي ستتيح لك ترقية قاعدة البيانات بينما لا يزال تطبيقك قيد التشغيل لتجنب زمن التوقف.
يتضمن الملف dbupgrade-compose.yml حقولاً تشير إلى إصدار الحاوية.
المثال:
services: dbupgrade: image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}
لترقية عملية تثبيت، يمكنك بدء تشغيل الحاوية dbupgrade-service مع تعيين متغير البيئة WA_API_VERSION
إلى أحدث إصدار:
WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d
ملاحظة: إذا كنت تستخدم تزامنًا يعيد تشغيل الحاوية عند الخروج بغض النظر عن الرمز للخروج، يمكنك بدء تشغيل الخدمة من خلال تعيين متغير البيئة EXIT_ON_SUCCESS
إلى القيمة FALSE
لتجنب الخروج من الحاوية عندما يكون الرمز للخروج بالقيمة 0
.
إذا تمت ترقية قاعدة البيانات بنجاح، فستخرج الحاوية بالرمز 0
. يمكنك استخدام أمر Docker التالي لتتبع الحالة:
docker wait your-database-upgrade-container-name
سيؤدي ذلك إلى عرض رمز الخروج الخاص بحاوية dbupgrade-service.
أعد تشغيل حاويات Docker في Coreapp وWebapp مع تعيين متغير البيئة WA_API_VERSION
إلى أحدث إصدار:
WA_API_VERSION=new-whatsapp-version docker-compose -f prod-docker-compose.yml up -d
2.29.3
والإصدارات الأحدثإذا كنت تقوم بالترقية من v2.29.1
وv2.29.2
أو واجهت مشكلات أثناء الترقية إلى هذه الإصدارات وكان عليك الرجوع إلى إصدار قديم من للحصول على أداء ثابت، فنوصي بالترقية إلى v2.29.3
ثم تشغيل الأمر التالي في حاوية Webapp Docker:
chown -R root your-media-directory/incoming your-media-directory/outgoing your-media-directory/shared
ما لم تقم بتغييره، فإن دليل الوسائط الافتراضي هو /usr/local/wamedia
.
ملاحظة:
v2.29.1
وv2.29.2
.نوصي بشدة بإجراء نسخ احتياطي لإعدادات التطبيق الحالية قبل إلغاء التثبيت. يُرجى اتباع وثائق النسخ الاحتياطي والاستعادة.
إذا كنت تريد إعادة تعيين بيئة التطوير عن طريق إزالة جميع الحاويات، فقم بتشغيل الأمر التالي من المسار الذي يتضمن ملف prod-docker-compose.yml
:
docker-compose -f prod-docker-compose.yml down
يجب أن يبدو الإخراج الناتج كما يلي:
Stopping biz_waweb_1 ... done Stopping biz_wacore_1 ... done Removing biz_waweb_1 ... done Removing biz_wacore_1 ... done
لإزالة كل وحدات التخزين المحددة في الملف prod-docker-compose.yml
وكذلك الحاويات، يمكنك تشغيل الأمر down
باستخدام المعلمة -v
:
docker-compose -f prod-docker-compose.yml down -v
نوصي باستخدام WADebug لاستكشاف الأخطاء وإصلاحها بشكل أكثر فعالية. أداة WADebug عبارة عن أداة سطر أوامر للمساعدة في العثور على المشكلات المحتملة المتعلقة بإعداد API الخاصة بواتساب للأعمال وجعل عملية طلب المساعدة من دعم واتساب أكثر فعالية.
في الحالات التي يتعذر فيها استخدام WADebug أو يؤدي تشغيل الأداة إلى إرجاع أخطاء، يمكنك تشغيل الأمر التالي لتجميع السجلات من كل الحاويات:
docker-compose -f prod-docker-compose.yml logs > debug_output.txt
لتجميع السجلات الخاصة بخدمة معينة، يمكنك إلحاق اسم الخدمة (waweb
أو wacore
) بالأمر docker-compose logs
:
docker-compose -f prod-docker-compose.yml logs waweb > debug_output.txt
يمكنك العثور على السجلات في الملف debug_output.txt
في الدليل الحالي.
يستخدم هذا البرنامج الرمز FFmpeg المُرخص بموجب رخصة جنو العمومية الصغرى (LGPL) بالإصدار 2.1 ويمكن تنزيل مصدره من هنا.