إعداد المطوّر: المثيل المنفرد

يوضح لك هذا المستند كيفية إعداد مثيل منفرد لعميل API الخاصة بواتساب للأعمال على جهاز المطوّر لتحقيق أغراض الاختبار. بالنسبة لإعداد الإنتاج، اتبع التعليمات ذات الصلة الواردة في عمليات إعداد الإنتاج.

لإعداد المثيل المنفرد في البداية، تحقق من قائمة المتطلبات واتبع هذه الخطوات:

  1. إنشاء دليل biz للبرامج النصية للإعداد
  2. الحصول على ملفات تكوين عميل API الخاصة بواتساب للأعمال
  3. إعداد متغير البيئة WA_API_VERSION
  4. بدء عميل API الخاصة بواتساب للأعمال
  5. التحقق من تشغيل الحاويات
  6. إجراء عملية التحقق من سلامة الأداء
  7. تسجيل عميل API الخاصة بواتساب للأعمال

بمجرد إكمال إعداد المثيل، يمكنك اختيار ترقيته. لإلغاء تثبيت العميل، اتبع هذه الخطوات.

قبل البدء

قبل البدء، ستحتاج إلى إكمال ما يلي:

Install Docker Desktop

To install Docker Desktop on your developer machine:

  1. Navigate to the Docker website.
  2. If you do not have an existing Docker account, create one by clicking on Sign Up.
  3. After you have created your account, you will be directed to the Docker download page.
  4. Download Docker Desktop based on your OS (This should be automatically detected and presented as the default option).

The remaining steps are based on macOS and should be very similar for Linux or Windows 10.

To install Docker using macOS:

  1. Install the package (docker.dmg for macOS).
  2. After extraction, Finder will pop-up and you will be presented with a dialog that instructs you to drag the Docker icon to Applications. Drag Docker icon to the Application folder in Finder.
  3. In Applications launch Docker and then click the Open button.
  4. You may be prompted to enter your password Docker needs priviledged/administrator access.
  5. Docker will present you with a tutorial, you can click Start to launch a tutorial or you can click Skip Tutorial to start using Docker.

Verify Docker Compose is installed

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.

المتطلبات الأساسية الأخرى

تأكد من إعداد حساب اختباري محلي في بيئة التطوير. هذا الحساب مخصص لإجراء عملية التطوير السريع واختبار الإصدارات الجديدة.

الإعداد الأولي لعميل API الخاصة بواتساب للأعمال

Perform the following steps to install a single instance of the WhatsApp Business API client on a developer system.

Step 1: Create ~/biz

Create a ~/biz directory for the WhatsApp Business API client.

Step 2: Get Config Files

Clone the WhatsApp Business API Client docker-compose.yml and db.env configuration files from the WhatsApp GitHub repository for either a MySQL database setup or a Postgres database setup to your ~/biz directory.

Step 3: Set the Version

The WA_API_VERSION environmental variable should be set to the current version.

~/biz $ export WA_API_VERSION=CURRENT-WA-API-VERSION

To find the current version of the API that you installed, open docker-compose.yml and search for "WA_API_VERSION=". The version number should be noted by a developer in the wacore label:

    wacore:
    image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.31.4 docker-compose <command> <options>)}

Step 4: Start the Client

To start the WhatsApp Business API client, run:

~/biz $ docker-compose up -d

The resulting output should look like the following:

Creating volume "biz_whatsappMedia" with local driver
Creating volume "biz_mysqlData" with local driver
Creating biz_db_1 ... done
Creating biz_wacore_1 ... done
Creating biz_waweb_1  ... done

Verify Containers Are Running

You can check that all containers have an UP state by running:

~/biz $ docker-compose ps

By default, the Webapp container will be running on port 9090 (https://localhost:9090) and the database container will be running on port 33060 (https://localhost:33060).

The resulting output should look like the following:

~/biz $ docker-compose ps
     Name                    Command               State                   Ports
-------------------------------------------------------------------------------------------------
biz_db_1       docker-entrypoint.sh mysqld      Up      0.0.0.0:33060->3306/tcp, 33060/tcp
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

Status Check

Send a GET request to /v1/health endpoint to check the status of your client.

On success, you will see the following:

{
    "health": {
        "gateway_status": "unregistered"
    }
}

Register Your Client

To register your WhatsApp Business API client, send a POST request to the /v1/account endpoint.

Upon registration gateway_status will be set connected. Your Coreapp container is able to connect to the WhatsApp server for checking contacts and sending messages.

Next Steps

ترقية عميل API الخاصة بواتساب للأعمال

ستواجه مشكلة زمن التوقف أثناء عملية الترقية.

يوصى بشدة بإجراء نسخ احتياطي لإعدادات التطبيق الحالية لديك قبل الترقية للتأكد من أنه يمكنك نسخ الإعدادات احتياطيًا وتشغيلها سريعًا. يُرجى اتباع وثائق النسخ الاحتياطي والاستعادة.

لذا يوصى دائمًا بتنفيذ الترقيات خلال الساعات الأقل ازدحامًا.

الخطوة الأولى: تغيير متغير البيئة WA_API_VERSION إلى الإصدار الجديد

يجب تحديث المتغير البيئي WA_API_VERSION إلى رقم الإصدار الجديد باستخدام:

export WA_API_VERSION=new-whatsapp-version

إذا كنت تقوم بالترقية إلى الإصدار 2.33.4، فسيكون مثال الأمر كما يلي:

~/biz $ export WA_API_VERSION=2.33.4

الخطوة الثانية: إعادة تشغيل حاويات Docker

أعد تشغيل حاويات Docker من خلال تشغيل:

docker-compose up -d

يجب أن يبدو الإخراج الناتج كما يلي:

biz_db_1 is up-to-date
Recreating biz_wacore_1 ... done
Recreating biz_waweb_1  ... done

بالنسبة لمستخدمي قاعدة بيانات MySQL الذين يقومون بالترقية إلى الإصدار 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.

الخطوة الرابعة: إعادة تشغيل حاويات Coreapp وWebapp

أعد تشغيل حاويات Docker في Coreapp وWebapp مع تعيين متغير البيئة WA_API_VERSION إلى أحدث إصدار:

WA_API_VERSION=new-whatsapp-version docker-compose up -d

إلغاء تثبيت عميل API الخاصة بواتساب للأعمال

يوصى بشدة بنسخ إعدادات التطبيق الحالية احتياطيًا قبل إلغاء التثبيت. يُرجى اتباع وثائق النسخ الاحتياطي والاستعادة.

إذا كنت تريد إعادة تعيين بيئة التطوير عن طريق إزالة كافة الحاويات، فقم بتشغيل الأمر التالي من المسار الذي يتضمن ملف docker-compose.yml:

WA_API_VERSION={VERSION_NUMBER} docker-compose down

يجب أن يبدو الإخراج الناتج كما يلي:

Stopping biz_waweb_1  ... done
Stopping biz_wacore_1 ... done
Stopping biz_db_1     ... done
Removing biz_waweb_1  ... done
Removing biz_wacore_1 ... done
Removing biz_db_1     ... done

لإزالة كل وحدات التخزين المحددة في الملف docker-compose.yml وكذلك الحاويات، يمكنك تشغيل الأمر down باستخدام المعلمة -v:

WA_API_VERSION={VERSION_NUMBER} docker-compose down -v

استكشاف الأخطاء وإصلاحها

نوصي باستخدام WADebug لاستكشاف الأخطاء وإصلاحها بشكل أكثر فعالية. أداة WADebug عبارة عن أداة سطر أوامر للمساعدة في العثور على المشكلات المحتملة المتعلقة بإعداد API الخاصة بواتساب للأعمال وجعل عملية طلب المساعدة من دعم واتساب أكثر فعالية.

في الحالات التي يتعذر فيها استخدام WADebug أو يؤدي تشغيل الأداة إلى إرجاع أخطاء، يمكنك تشغيل الأمر التالي لتجميع السجلات من كل الحاويات:

docker-compose logs > debug_output.txt

لتجميع السجلات الخاصة بخدمة معينة، يمكنك إلحاق اسم الخدمة (waweb أو wacore) بالأمر docker-compose logs:

docker-compose logs waweb > debug_output.txt

يمكنك العثور على السجلات في الملف debug_output.txt في الدليل الحالي.


يستخدم هذا البرنامج الرمز FFmpeg المُرخص بموجب رخصة جنو العمومية الصغرى (LGPL) بالإصدار 2.1 ويمكن تنزيل مصدره من هنا.