
現成的、用 Python 寫的 Telegram 機器人,可以賺錢

Telegram 不僅提供聊天和頻道功能;它還讓你有機會直接在手機上開展自己的小型業務。你只需要一點時間、一點探索的熱情,以及這篇文章。以下是一些你可以從零開始創建並開始盈利的快速有效的機器人創意。
在上一篇文章中,我們討論了獲利和吸引流量的想法。
1. 數位商品機器人商店
想法:銷售可以自動發放的東西:檔案、存取權限、金鑰、訂閱。
這樣的機器人可以賣什麼:
- 外掛、範本、清單
- 貼紙和壁紙
- 數位導覽
- 造訪私人頻道
🔧 如何在 Python 中實作(aiogram)
以下是一個非常簡單的機器人範例,以及一個使用 JSON 的稍微複雜一些的範例。但是,要實作一個真正的機器人,您需要使用真正的支付 API(程式碼下方有範例)和資料庫(MySQL、SQLite 或 PostgreSQL)。
@dp.message_handler(commands=['start'])
async def welcome(msg: types.Message):
kb = InlineKeyboardMarkup().add(InlineKeyboardButton("Купить товар", callback_data='buy'))
await msg.answer("Добро пожаловать в магазин!", reply_markup=kb)import json
import os
from aiogram import Bot, Dispatcher, types
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils import executor
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv("BOT_TOKEN")
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())
# Загружаем список товаров
with open("products.json", "r", encoding="utf-8") as f:
PRODUCTS = json.load(f)["items"]
# Команда /start
@dp.message_handler(commands=['start'])
async def welcome(msg: types.Message):
kb = InlineKeyboardMarkup().add(InlineKeyboardButton("🛒 Купить товар", callback_data='buy'))
await msg.answer("Добро пожаловать в магазин цифровых товаров!", reply_markup=kb)
# Выводим список товаров
@dp.callback_query_handler(lambda c: c.data == 'buy')
async def show_products(callback_query: types.CallbackQuery):
kb = InlineKeyboardMarkup()
for product in PRODUCTS:
kb.add(InlineKeyboardButton(f"{product['title']} — {product['price']}₽", callback_data=f"product_{product['id']}"))
await bot.send_message(callback_query.from_user.id, "Выберите товар:", reply_markup=kb)
# Подтверждение покупки и ссылка на оплату
@dp.callback_query_handler(lambda c: c.data.startswith("product_"))
async def product_selected(callback_query: types.CallbackQuery):
product_id = callback_query.data.split("_")[1]
product = next((item for item in PRODUCTS if item["id"] == product_id), None)
if not product:
await bot.send_message(callback_query.from_user.id, "Товар не найден.")
return
kb = InlineKeyboardMarkup().add(
InlineKeyboardButton("✅ Я оплатил", callback_data=f"paid_{product_id}")
)
await bot.send_message(
callback_query.from_user.id,
f"Товар: {product['title']}\nЦена: {product['price']}₽\n\nОплатить можно по ссылке:\n{product['pay_url']}",
reply_markup=kb
)
# Подтверждение оплаты и выдача товара
@dp.callback_query_handler(lambda c: c.data.startswith("paid_"))
async def confirm_payment(callback_query: types.CallbackQuery):
product_id = callback_query.data.split("_")[1]
product = next((item for item in PRODUCTS if item["id"] == product_id), None)
if not product:
await bot.send_message(callback_query.from_user.id, "Ошибка: товар не найден.")
return
# Вариант вручную (доверительный) — для MVP
try:
with open(product["file"], "rb") as file:
await bot.send_document(callback_query.from_user.id, file, caption=f"Вот ваш товар: {product['title']}")
except Exception as e:
await bot.send_message(callback_query.from_user.id, "Ошибка при отправке файла.")
# Запуск
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
2. AI機器人(基於ChatGPT)
想法:一個利用人工智慧回答用戶查詢的機器人。
它的功能:
- 產生文字、想法和文章
- 回答問題
- 學習輔導
import openai
openai.api_key = "your_openai_key"
@dp.message_handler()
async def gpt_reply(message: types.Message):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": message.text}]
)
await message.reply(response['choices'][0]['message']['content'])獲利模式:
- 訂閱
- 限制請求數量
- 捐款或助力
3. 課程機器人(提供教育課程的機器人)
想法:透過 Telegram 教授知識的機器人。
課程範例:
- 從零開始學習 Python
- 手機設計
- 怎樣在網上賺錢
🔧 FSM 方法(圖):
下面再次列出一些簡單且更複雜的例子。
class Learning(StatesGroup):
Lesson1 = State()
Lesson2 = State()
@dp.message_handler(commands=['start_course'])
async def start_course(msg: types.Message):
await msg.answer("Урок 1: Что такое Python?")
await Learning.Lesson1.set()from aiogram import Bot, Dispatcher, types
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.utils import executor
TOKEN = 'YOUR_BOT_TOKEN'
bot = Bot(token=TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())
# Состояния курса
class Learning(StatesGroup):
Lesson1 = State()
Lesson2 = State()
Done = State()
# Кнопки
kb_next = ReplyKeyboardMarkup(resize_keyboard=True).add(KeyboardButton("➡️ Далее"))
# Команда старта курса
@dp.message_handler(commands=['start_course'])
async def start_course(msg: types.Message):
await msg.answer("👨🏫 Урок 1: Что такое Python?\n\nPython — это простой язык программирования, с которого удобно начинать.\n\n❓Вопрос: Как называется язык, о котором идет речь?", reply_markup=kb_next)
await Learning.Lesson1.set()
# Проверка ответа на 1 урок
@dp.message_handler(state=Learning.Lesson1)
async def lesson1_handler(msg: types.Message, state: FSMContext):
if "python" in msg.text.lower():
await msg.answer("✅ Верно! Переходим к Уроку 2...\n\n🧠 Урок 2: Где используют Python?\n- Веб-сайты\n- ИИ\n- Сценарии автоматизации\n\n❓Вопрос: Назови хотя бы одно применение Python.")
await Learning.Lesson2.set()
else:
await msg.answer("❌ Не совсем. Подсказка: язык начинается на 'P'.")
# Проверка второго ответа
@dp.message_handler(state=Learning.Lesson2)
async def lesson2_handler(msg: types.Message, state: FSMContext):
if any(keyword in msg.text.lower() for keyword in ['веб', 'бот', 'автоматизация', 'ии', 'сайт']):
await msg.answer("🎉 Отлично! Ты прошёл мини-курс по Python.\n\nХочешь пройти снова? Напиши /start_course")
await state.finish()
else:
await msg.answer("🤔 Попробуй ещё раз. Например: 'веб-разработка', 'боты' или 'автоматизация'.")
# Фоллбэк
@dp.message_handler(state='*')
async def default_handler(msg: types.Message):
await msg.answer("Напиши /start_course чтобы начать обучение.")
# Запуск бота
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
如何賺取:
- 出售存取權限
- 建立包含聯盟計畫的免費課程
- 添加廣告和連結
4. CPA機器人(附聯盟行銷計畫的機器人)
其理念是:一個機器人,點擊連結即可獲得“獎勵”,而你則可以透過聯盟計畫獲得收益。
🔧 簡單範例:
@dp.message_handler(commands=['start'])
async def start(msg: types.Message):
kb = InlineKeyboardMarkup().add(
InlineKeyboardButton("Получить бонус", url="https://ваша-ссылка.ru/?ref=рефералка")
)
await msg.answer("Нажми кнопку и получи подарок 🎁", reply_markup=kb)CPA聯盟: Admitad、CityAds
在哪裡運行機器人
- 鐵路應用 — 簡單的 Python 機器人部署
- Render.com 免費且方便
結論:Telegram 機器人是您專案的起點。
即使是初學者,用 Python 建立機器人也很容易上手。從簡單的開始,推出最小可行產品 (MVP),然後逐步改進。一個能正常運作的機器人就能帶來被動收入,並成為建構更大專案的起點。


評論
暫無評論。快來搶先評論吧!