Страница 1 из 1

отправляет SMS сообщение

Добавлено: 17 авг 2024, 18:08
ya
Для отправки SMS-сообщений с веб-сервера с использованием C++ и библиотеки g++, вы можете воспользоваться API сторонних сервисов, таких как Twilio, Nexmo (также известный как Vonage), или других аналогичных. Эти сервисы обычно предоставляют RESTful API, который можно вызывать для отправки SMS.

Вот пример того, как можно сделать это с использованием C++ и библиотеки libcurl для отправки HTTP-запросов. Этот пример предполагает, что вы используете Twilio.

Код: Выделить всё

sudo apt-get install libcurl4-openssl-dev

Код: Выделить всё

#include <iostream>
#include <curl/curl.h>
#include <string>

void sendSMS(const std::string& accountSid, const std::string& authToken, const std::string& from, const std::string& to, const std::string& message) {
    CURL *curl;
    CURLcode res;
    
    std::string url = "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/Messages.json";
    
    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if(curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");

        std::string postFields = "From=" + from + "&To=" + to + "&Body=" + message;

        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postFields.c_str());

        // Аутентификация
        curl_easy_setopt(curl, CURLOPT_USERPWD, (accountSid + ":" + authToken).c_str());

        // Выполнение запроса
        res = curl_easy_perform(curl);

        // Проверка на ошибки
        if(res != CURLE_OK) {
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        }

        // Очистка
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();
}

int main() {
    // Замените значения на ваши учетные данные Twilio и номер телефона
    std::string accountSid = "YOUR_TWILIO_ACCOUNT_SID";
    std::string authToken = "YOUR_TWILIO_AUTH_TOKEN";
    std::string from = "YOUR_TWILIO_PHONE_NUMBER";
    std::string to = "RECIPIENT_PHONE_NUMBER";
    std::string message = "Hello from C++!";

    sendSMS(accountSid, authToken, from, to, message);

    return 0;
}
Компиляция

Код: Выделить всё

g++ -std=c++11 -o send_sms send_sms.cpp -lcurl
./send_sms
Не забудьте заменить YOUR_TWILIO_ACCOUNT_SID, YOUR_TWILIO_AUTH_TOKEN, YOUR_TWILIO_PHONE_NUMBER, и RECIPIENT_PHONE_NUMBER на свои реальные данные.