Перейти к содержанию

Сборка и подключение библиотеки#

Эта библиотека использует стандарт C++ 17, поддерживает компиляторы Linux (GCC) и Windows (Visual Studio 2019/2022).

Данная библиотека имеет зависимости от:
- curl - для HTTP запросов.
- nlohmann-json - для работы с json.
- websocketpp - для websocket запросов.

Последовательность действий для сборки и подключения библиотеки:
1. Установка зависимостей
2. Настройка библиотеки
3. Сборка библиоткеки
4. Подключение библиотеки в проект
5. Работа с примерами

1. Установка зависимостей#

Клонируйте репозиторий библиотеки

git clone https://github.com/green-api/whatsapp-api-client-cpp.git

Windows#

Установка зависимостей с пакетным менеджером vcpkg:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat
vcpkg install curl
vcpkg install nlohmann-json
# vcpkg install websocketpp (опционально)
vcpkg integrate install

Windows x64#

Большинство компьютеров с Windows сейчас имеют x64-разрядную версию, но по умолчанию vcpkg использует пакеты x86.

vcpkg install nlohmann-json:x64-windows
vcpkg install curl:x64-windows

Для выполнения команд в PowerShell необходимо изменить команды на .\vcpkg

После сборки bootstrap-vcpkg.bat требуется добавить vcpkg.exe в переменные окружения Вашей системы PATH\vcpkg\installed\x64-windows\bin.

Linux#

Установка зависимостей с пакетным менеджером vcpkg:

  • Зависимости
  • curl
  • nlohmann-json
  • websocketpp (опционально)

Вы можете установить зависимости с помощью готового сценария install.sh (sudo sh install.sh) или вручную:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg/vcpkg install curl
./vcpkg/vcpkg install nlohmann-json
# ./vcpkg install websocketpp (опционально)
./vcpkg/vcpkg integrate install

2. Настройка библиотеки#

Библиотека имеет файл конфигурации config.hpp

В файле можно указать с какими параметрами требуется собрать библиотеку:

// Ниже представленны параметры по умолчанию
#define CURL_LOG false          // true/false уровень логирования используемой библиотеки cURL
#define GA_CURLOPT_TIMEOUT 60L  // Общее время ожидания ответа от сервера
#define GA_CURLOPT_CONNECTTIMEOUT 15L  // Время соединения с сервером

#define LOG_FILE false          // Запись логов в файл log
#define LOG_CONSOLE false       // Вывод логов в консоль (ошибки библиотеки выводятся в консоль всегда)

После конфигурирования необходимо собрать библиотеку с новыми параметрами

3. Сборка библиоткеки#

Windows#

Для сборки библиотеки Вам потребуется:

  • CMake - кроcсплатформенная утилита для автоматической сборки программы из исходного кода.
  • Компилятор Microsoft Visual C++ (MSVC) для приложений на языке C++

Сборка библиотеки осуществляется с помощью сценария build.bat или CMake вручную (компиляция Debug версии библиотеки):

mkdir build
cd build
cmake ..
cd ../
cmake --build build

Возможно при сборке Вам потребуется указать прямые пути до используемых библиотек, раскомментируйте строки в CMakeList.txt

Linux#

Сборка библиотеки осуществляется с помощью сценария build.sh (sudo sh build.sh) или вручную:

mkdir build
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build/

Вы можете изменить каталог vcpkg, указав относительный или абсолютный путь.

Возможно при сборке библиотеки Вам потребуется установить дополнительные пакеты:

sudo apt-get update
sudo apt-get install cmake
sudo apt-get install g++
sudo apt-get install pkg-config
sudo apt-get install libcurl4-openssl-dev
sudo apt install build-essential

4. Подключение библиотеки#

Windows#

Подключение библиотеки в Visual Studio можно сделать добавив файл библиотеки whatsapp-api-client-cpp.lib в зависимости проекта:

  1. Свойства->Свойства конфигурации->С/С++->Общие->Дополнительные каталоги включаемых файлов, указать файлы заголовков (папка PATH/whatsapp-api-client-cpp/include)
  2. Свойства->Свойства конфигурации->Компоновщик->Общие->Дополнительные каталоги библиотек, указать путь к библиотеке (папка с собранным файлом PATH/build/)
  3. Свойства->Свойства конфигурации->Компоновщик->Ввод->Дополнительные зависимости, указать наименование фаила библиотеки (whatsapp-api-client-cpp.lib)

Внимательно выбирайте тип Вашей конфигурации и подключайте необходимую версию библиотеки (debug и release)

5. Работа с примерами#

Примеры использования методов собранны в папке examples, каждый из файлов примера содержит примеры всех методов библиотеки со всеми параметрами, которые поддерживает конкретный метод.
Для запуска конкретного примера необходимо производить копирование кода примера в ваш рабочий фаил main.cpp и параметризировать метод вашими значениями.