Bot obrolan yang sangat sederhana untuk Telegram untuk yang terkecil



Ada 100.500 cara dan alat untuk membuat bot obrolan tanpa server untuk telegram. Dan bagaimanapun kita akan lebih mudah, paling tidak dengan jumlah klik di antarmuka. Bot itu sendiri akan ditulis dalam Python, dan akan dieksekusi pada mesin Swifty serverless.

Seperti biasa dalam panduan kami, Anda tidak perlu pengetahuan khusus tentang python atau bahasa pemrograman lainnya. Yang Anda butuhkan adalah kemampuan untuk menjalankan sesuatu di baris perintah. Jika Anda berada di Rusia, maka ada juga VPN di komputer Anda, karena Anda harus menjangkau server telegram.

Sementara semuanya standar - daftarkan bot


Untuk membuat bot baru, Anda perlu meminta bot lain untuk melakukan ini. Buka telegram dan temukan bot @BotFather di sana atau buka tautan . Selanjutnya, ketik / newbot dan ikuti instruksi BotPapa. Untuk konfigurasi minimal, Anda hanya perlu memberi bot nama tampilan dan nama pengguna. Setelah membuat bot, Anda akan diberikan token akses dan URL. Simpan mereka di suatu tempat.

Bot


Pertama, Anda perlu mendaftar dengan Swifty, platform tanpa server kami. Anda bisa melakukannya di sini . Lalu pergi ke panel kontrol dan lakukan hal berikut:

  1. Klik Fungsi -> Fungsi Baru. Klik tab Dari repo (Templat) dan pilih repositori github.com/swiftycloud/swifty.demo jika tidak dipilih secara default. Ini adalah repositori kami sendiri tempat kami menyimpan templat fungsi.
  2. Pilih templat Simple Telegram Chatbot (python) dan klik Next.
  3. Masukkan nama bot Anda, misalnya, swifty_bot (selanjutnya saya akan menggunakan nama ini untuk menetapkannya) dan klik Buat.

Agar telegram dapat memanggil fungsi bot, Anda perlu membuat tautan API ke sana. Buka tab Pemicu, klik Tambah Pemicu -> REST API (URL). Simpan tautan yang dihasilkan.

Kemudian, Anda perlu memberi fungsi bot fungsi akses ke token akses yang Anda terima dari telegram. Swifty memiliki entitas khusus - Akun, yang memungkinkan Anda menyimpan data apa pun dengan aman, misalnya, kumpulan atau token kata sandi masuk.

  1. Pilih Akun -> Buat Akun. Gunakan jenis API Telegram, nama SWIFTYBOT (tepatnya dalam huruf besar) dan token yang Anda terima dari telegram.
  2. Pilih Fungsi -> swifty_bot -> Akses -> Tambah. Pilih Akun dan Akun SWIFTYBOT. Fungsi Anda sekarang memiliki akses aman ke token akses Anda.

Perbarui Perhatikan! Nama SWIFTYBOT untuk akun tersebut ditulis dalam kode fungsi di sini:

BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) 

Jika Anda ingin menggunakan nama akun yang berbeda, maka Anda perlu mengubahnya dalam kode fungsi. Misalnya, jika nama akun Anda adalah MYOWNBOT, maka kode Anda akan terlihat seperti ini:

 BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMMYOWNBOT_TOKEN')) 

Bagaimana nama variabel lingkungan ACC_TELEGRAMMYOWNBOT_TOKEN dibentuk, di mana fungsi menerima properti akun, sama seperti sumber daya lainnya di Swifty? Di sini:

  • ACC - pengidentifikasi bahwa Anda ingin mengakses sumber daya tipe Akun;
  • TELEGRAM - jenis akun;
  • MYOWNBOT - nama akun;
  • TOKEN - properti akun;

Kode fungsi yang dihasilkan:

 import json import os import sys import requests BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) def Main(req): try: data = json.loads(req.body.encode()) message = str(data["message"]["text"]) chat_id = data["message"]["chat"]["id"] first_name = data["message"]["chat"]["first_name"] response = "Please /start, {}".format(first_name) if "start" in message: response = "Hello {}! Type /help to get list of actions.".format(first_name) if "help" in message: response = "/about - get information about Swifty" if "about" in message: response = ("Swifty is the serverless platform that allows startups, developers and enterprises to develop and run application backend with minimal time-to-market, costs and without infrastructure management.\n" "Start creating your backend at\n" "https://swifty.cloud") data = {"text": response.encode("utf8"), "chat_id": chat_id} url = BASE_URL + "/sendMessage" requests.post(url, data) except Exception as e: print(e) return {"statusCode": 200}, None 

Ini adalah bot paling sederhana yang dapat menanggapi perintah / mulai, / bantuan dan / tentang. Anda juga dapat menambahkan tim Anda dan memperluas fungsinya seperti yang diinginkan.

Kami menghubungkan fungsi ke bot


Sekarang Anda perlu memberi tahu telegram apa tautan bot Anda. Anda perlu membuka baris perintah dan menjalankan perintah berikut di dalamnya. Pada saat yang sama, YOUR_API_URL perlu diganti dengan tautan API yang Anda salin sebelumnya, dan YOUR_ACCESS_TOKEN dengan token.

 curl -XPOST https://api.telegram.org/botYOUR_ACCESS_TOKEN/setWebhook?url=YOUR_API_URL 


Jika semuanya berjalan dengan baik, maka Anda akan melihat sesuatu seperti berikut:

 { "ok": true, "result": true, "description": "Webhook was set" } 

Jika Anda berada di Rusia, maka semuanya akan berjalan baik hanya jika Anda memiliki VPN yang diaktifkan.

Dapat memeriksa


Temukan bot dengan nama Anda di telegram dan coba jalankan beberapa perintah, misalnya, / mulai atau / tentang. Jika semuanya berhasil, selamat. Jika tidak, silakan berkomentar di sini atau di saluran slack kami.

Anda dapat melihat bagaimana bot yang siap bekerja jika Anda menemukannya di telegram bot kami dengan nama swifty_test_bot. Terima kasih

Jadikan ide Anda datang dengan aplikasi, seperti yang dikatakan di swifty.cloud .

Source: https://habr.com/ru/post/id432914/


All Articles