телеграм-бот

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

телеграм-бот

Сообщение ya »

https://core.telegram.org/bots/samples

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

sudo apt-get install libboost-all-dev libjson-c-dev

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

git clone https://github.com/libcpr/cpr.git
cd cpr
mkdir build
cd build
cmake ..
make
sudo make install

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

#include <cpr/cpr.h>
#include <iostream>
#include <string>
#include <json/json.h>

const std::string BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"; // Замените на ваш токен
const std::string BASE_URL = "https://api.telegram.org/bot" + BOT_TOKEN;

void sendMessage(const std::string& chat_id, const std::string& text) {
    std::string url = BASE_URL + "/sendMessage";

    // Создаем JSON-объект
    Json::Value jsonData;
    jsonData["chat_id"] = chat_id;
    jsonData["text"] = text;

    // Отправляем POST-запрос
    auto response = cpr::Post(cpr::Url{url},
                               cpr::Body{jsonData.toStyledString()},
                               cpr::Header{{"Content-Type", "application/json"}});

    std::cout << "Response: " << response.text << std::endl; // Выводим ответ от Telegram
}

int main() {
    std::string chat_id = "CHAT_ID"; // Замените на ID вашего чата
    std::string text = "Hello, World!";

    sendMessage(chat_id, text);

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

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

g++ -std=c++11 -o telegram_bot telegram_bot.cpp -lcpr -lboost_system -lboost_thread -lpthread -ljson-c -I/usr/include/json
Запуск

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

./telegram_bot
Для реализации асинхронных операций вы можете использовать boost::asio для создания многопоточных операций или событийного цикла.

Не забудьте заменить YOUR_TELEGRAM_BOT_TOKEN и CHAT_ID на фактический токен вашего бота и ID вашего чата соответственно.
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: телеграм-бот

Сообщение ya »

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

#include <cpr/cpr.h>
#include <iostream>
#include <string>
#include <json-c/json.h> // Изменено на json-c

const std::string BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"; // Замените на ваш токен
const std::string BASE_URL = "https://api.telegram.org/bot" + BOT_TOKEN;

void sendMessage(const std::string& chat_id, const std::string& text) {
    std::string url = BASE_URL + "/sendMessage";

    // Создаем JSON-объект
    json_object *jsonData = json_object_new_object();
    json_object_object_add(jsonData, "chat_id", json_object_new_string(chat_id.c_str()));
    json_object_object_add(jsonData, "text", json_object_new_string(text.c_str()));

    // Получаем строку JSON
    const char *jsonStr = json_object_to_json_string(jsonData);

    // Отправляем POST-запрос
    auto response = cpr::Post(cpr::Url{url},
                               cpr::Body{jsonStr},
                               cpr::Header{{"Content-Type", "application/json"}});

    std::cout << "Response: " << response.text << std::endl; // Выводим ответ от Telegram

    // Освобождаем память
    json_object_put(jsonData);
}

int main() {
    std::string chat_id = "CHAT_ID"; // Замените на ID вашего чата
    std::string text = "Hello, World!";

    sendMessage(chat_id, text);

    return 0;
}

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

g++ -std=c++17 -o telegram_bot telegram_bot.cpp -lcpr -lboost_system -lboost_thread -lpthread -ljson-c  -I/usr/include/json-c
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: телеграм-бот v2

Сообщение ya »

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

sudo apt-get install libcpprest-dev

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

#include <cpprest/http_client.h>
#include <cpprest/json.h>
#include <iostream>

using namespace web;
using namespace web::http;
using namespace web::http::client;

const std::string BOT_TOKEN = "YOUR_BOT_TOKEN";
const std::string BASE_URL = "https://api.telegram.org/bot" + BOT_TOKEN;

// Функция для отправки сообщения
void sendMessage(const std::string& chat_id, const std::string& text) {
    http_client client(U(BASE_URL + "/sendMessage"));
    uri_builder builder(U(""));
    builder.append_query(U("chat_id"), U(chat_id));
    builder.append_query(U("text"), U(text));

    client.request(methods::POST, builder.to_string()).then([](http_response response) {
        if (response.status_code() == status_codes::OK) {
            std::cout << "Message sent successfully!" << std::endl;
        } else {
            std::cout << "Error sending message." << std::endl;
        }
    }).wait();
}

// Основная функция
int main() {
    std::string chat_id = "CHAT_ID"; // Замените на ID вашего чата
    std::string message = "Hello, this is a test message!";
    
    sendMessage(chat_id, message);

    return 0;
}
В этом разделе более подробно рассматриваются платежи через API бота Telegram
https://core.telegram.org/bots/payments#the-payments-api

Подключение платежей
Чтобы начать принимать платежи, вам нужен Telegram-бот . Используйте BotFather для создания бота, если у вас его еще нет.

Теперь у вас есть торговый бот, который может предлагать товары или услуги пользователям Telegram. Давайте назовем его @merchantbotв этом документе.

Получение токена
Используйте /mybotsк оманду в чате с BotFather и выберите того @merchantbot, кто будет предлагать товары или услуги.
Перейдите в Настройки бота > Платежи .
Выберите провайдера, и вы будете перенаправлены на соответствующего бота.
Введите необходимые данные для успешного подключения к платежному провайдеру, вернитесь в чат с Botfather.
Теперь в сообщении будут показаны доступные поставщики. У каждого будет имя, токен и дата подключения поставщика.
Токен будет использоваться при работе с API бота.
Осуществление платежей
Необходимые методы для создания вашей платежной реализации вы найдете в разделе «Платежи» Руководства по API бота .

https://core.telegram.org/bots/api#payments
Ответить