- Katılım
- 23 Eki 2022
- Mesajlar
- 9,193
- Çözümler
- 14
- Tepkime puanı
- 7,169
- Puanları
- 113
- Yaş
- 28
Bu kod, Aiogram 3 + Telegram Bot API kullanılarak yazılmış bir sorgulama botudur. Temel görevi, kullanıcının Telegram üzerinden girdiği bilgileri bir web API'sine gönderip sonucu geri göstermektir.
Kullanıcı
│
▼
Telegram Bot
│
▼
│
▼
JSON cevap
│
▼
Telegram'da kullanıcıya göster
Yani botun kendisinde veri tabanı yoktur. Sadece API'ye istek atan bir arayüz görevi görür.
TC Sorgula
Ad Soyad Sorgula
TC'den GSM
GSM'den TC
İşyeri Bilgisi
Adres Bilgisi
Sulale Ağacı
Yardım
Her buton farklı bir API'yi çağırmak için hazırlanmıştır.
12345678901
girer.
Bot şu isteği yapar:
GET
API döndürürse
{
"success":"true",
"ADI":"Ali",
"SOYADI":"Yılmaz",
...
}
Bot bunu Telegram'da gösterir.
Ali
yazar.
Sonra
Yılmaz
yazar.
Bot isterse il ve ilçe de sorar.
Daha sonra
GET
adsoyad.php?adi=Ali&soyadi=Yılmaz
veya
adsoyad.php?adi=Ali&soyadi=Yılmaz&il=Ankara
gibi sorgu gönderir.
12345678901
girer.
Aslında amaç şu API'yi çağırmaktır:
tcgsm.php
ve
TC
↓
Telefonlar
ilişkisini göstermektir.
Fakat senin kodunda bu kısım eksik.
Şu an yine
tc.php
çalışıyor.
5551234567
girer.
Bot
gsmtc.php?gsm=5551234567
çağırır.
Dönen cevap:
Telefon
↓
Sahibi
↓
TC
Ama API çağrısı yazılmamış.
Muhtemelen
isyeri.php
çağrılacak.
Ama sorgulama kısmı eksik.
Muhtemelen
adres.php
çağrılacak.
Ama sorgulama kodu eksik.
Muhtemelen
sulale.php
çağrılacak.
Örneğin
Ad Soyad
butonuna bastın.
State
adsoyad_ad
oluyor.
Sonra
Ali
yazıyorsun.
State
adsoyad_soyad
oluyor.
Sonra
Yılmaz
giriyorsun.
Daha sonra API çağrılıyor.
Bu sisteme FSM (Finite State Machine) denir.
api_get()
şunu yapıyor:
endpoint
↓
↓
GET isteği
↓
JSON cevabı
↓
Python sözlüğüne çevir
↓
Geri döndür
Telegram
↓
Aiogram
↓
Buton
↓
State
↓
API GET
↓
JSON
↓
Mesaj oluştur
↓
Telegram
Özetle bu botun amacı, Telegram üzerinden çeşitli kimlik ve iletişim bilgisi sorgularını kullanıcıdan alıp, bunları https://arastir.sbs/api üzerindeki PHP API'lerine ileterek dönen sonuçları kullanıcıya göstermektir. Botun kendisi veriyi üretmez; sadece API ile Telegram arasında aracı görevi görür.
Çalışma mantığı
Kullanıcı
│
▼
Telegram Bot
│
▼
│
▼
JSON cevap
│
▼
Telegram'da kullanıcıya göster
Yani botun kendisinde veri tabanı yoktur. Sadece API'ye istek atan bir arayüz görevi görür.
Ana menü
Bot açılınca kullanıcıya şu menü gelir:
TC Sorgula
Ad Soyad Sorgula
TC'den GSM
GSM'den TC
İşyeri Bilgisi
Adres Bilgisi
Sulale Ağacı
YardımHer buton farklı bir API'yi çağırmak için hazırlanmıştır.
1. TC Sorgula
Kullanıcı12345678901
girer.
Bot şu isteği yapar:
GET
API döndürürse
{
"success":"true",
"ADI":"Ali",
"SOYADI":"Yılmaz",
...
}
Bot bunu Telegram'da gösterir.
2. Ad Soyad Sorgula
KullanıcıAli
yazar.
Sonra
Yılmaz
yazar.
Bot isterse il ve ilçe de sorar.
Daha sonra
GET
adsoyad.php?adi=Ali&soyadi=Yılmaz
veya
adsoyad.php?adi=Ali&soyadi=Yılmaz&il=Ankara
gibi sorgu gönderir.
3. TC'den GSM
Kullanıcı12345678901
girer.
Aslında amaç şu API'yi çağırmaktır:
tcgsm.php
ve
TC
↓
Telefonlar
ilişkisini göstermektir.
Fakat senin kodunda bu kısım eksik.
Şu an yine
tc.php
çalışıyor.
4. GSM'den TC
Kullanıcı5551234567
girer.
Bot
gsmtc.php?gsm=5551234567
çağırır.
Dönen cevap:
Telefon
↓
Sahibi
↓
TC
5. İşyeri Bilgisi
Buton hazırlanmış.Ama API çağrısı yazılmamış.
Muhtemelen
isyeri.php
çağrılacak.
6. Adres Bilgisi
Hazırlanmış.Ama sorgulama kısmı eksik.
Muhtemelen
adres.php
çağrılacak.
7. Sulale
Hazırlanmış.Ama sorgulama kodu eksik.
Muhtemelen
sulale.php
çağrılacak.
State sistemi
Bot kullanıcıyı takip ediyor.Örneğin
Ad Soyad
butonuna bastın.
State
adsoyad_ad
oluyor.
Sonra
Ali
yazıyorsun.
State
adsoyad_soyad
oluyor.
Sonra
Yılmaz
giriyorsun.
Daha sonra API çağrılıyor.
Bu sisteme FSM (Finite State Machine) denir.
api_get fonksiyonu
En önemli fonksiyon budur.api_get()
şunu yapıyor:
endpoint
↓
↓
GET isteği
↓
JSON cevabı
↓
Python sözlüğüne çevir
↓
Geri döndür
Genel mimari
Telegram
↓
Aiogram
↓
Buton
↓
State
↓
API GET
↓
JSON
↓
Mesaj oluştur
↓
Telegram
Kodda eksik veya hatalı olanlar
TC'den GSM butonu doğru API'yi çağırmıyor.
İşyeri sorgusu tamamlanmamış.
Adres sorgusu tamamlanmamış.
Sülale sorgusu tamamlanmamış.
BOT_TOKEN kod içine düz yazılmış; bu güvenlik açısından sakıncalıdır ve ortam değişkeni (ENV) ile saklanması daha uygundur.
Her istek için yeni bir ClientSession oluşturuluyor. Performans açısından tek bir aiohttp.ClientSession oluşturup yeniden kullanmak daha verimlidir.
Özetle bu botun amacı, Telegram üzerinden çeşitli kimlik ve iletişim bilgisi sorgularını kullanıcıdan alıp, bunları https://arastir.sbs/api üzerindeki PHP API'lerine ileterek dönen sonuçları kullanıcıya göstermektir. Botun kendisi veriyi üretmez; sadece API ile Telegram arasında aracı görevi görür.
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
