Telegram Api'si. Örneklerle - Lower Beginner Level -

TheFlow

Üye
19 Şub 2021
200
2


1 - Bot Father ile Bot Api Key Alalım
Bunu her dilde yapmamız gerek arkadaşlar. Kısaca botların tanımını geçip ondan sonra devam edeceğim; Botlar, telefon numarası gerektirmeyen ve API'ler ile bağlantı kurup yönetebildiğimiz özel Telegram hesaplarıdır.

1.1 - Bot Father Mesajı
Telegram arayüzümüzü açalım. Bu, herhangi bir arayüz olabilir. Ben masaüstü uygulamasını tercih edeceğim. Search kutucuğuna basalım ve BOTFather yazalım. Gelen ilk mavi tikli bota tıklayalım.
N6W8yR.png

N6eyyA.png


1.2 - Botumuzu Oluşturalım
/newbot mesajı göndererek bot oluşturma sürecini başlatalım.
N6eG9x.png

Botumuzun adını soruyor. Adı ile cevap verelim
N6e2jh.png

Bundan sonra botumuzun kullanıcı adını soruyor. Bunda ise kuralımız sonunun "bot" ile bitmesi. Cevap verelim.
N6e7zs.png

Sonunda bitirdik. Karşımıza buna benzer bir yazı çıkması lazım. Mavi uzun ve anlamsız karakterler bizim tokenimiz bunu bota erişmekte kullanacağız. Ben bu konudan sonra botu kapatacağım için paylaşıyorum ama siz HİÇKİMSEYLE paylaşmamalısınız.
N63gpH.png


2 - Botumuz ile ilk iletişim
En son mesaja genen ve t.me/ ile başlayan linke tıklayalım. Start butanuna basarak başlayalım ancak şu an hiçbir cevap alamayacağız.
Ancak hadi bir kereliğine elimizle gönderelim mesajı.


2.1 - Link ile gelen mesajı öğrenme
Telegram API'si, gelen bütün mesajları bazı belirli bilgiler ile beraber JSON verisi olarak tutar. Bu verilere ulaşarak son gelen mesaja bakalım. tarayıcımızdan api.telegram.org/bot<tokeniniz>/getUpdates. Bize bir takım bilgiler verecek. Vermesi içn ilk önce bu linki açmalıyız. Karşımıza kısa bir satır çıkacak. Ondan sonra telegramdan bir metin yazalım. Ve duruma bakalım.
N6bx7N.png


2.2 - İnceleme!
Kimler bu kısma kadar sabırla bekledi? şahsen benim en sevdiğim kısım budur bütün konularda :)) Şimdi madde madde her şeyi inceleyeceğim.

Update ID
Mesajınızın gönderiliş sırasının idsidir. Mesaja özeldir. Eğer "A" mesajının update idsi "B" mesajından büyükse "A" mesajı daha yenidir.

Message ID
Botunuza gelen mesajın sayısındaki konumudur. Yani, Update ID bütün Telegram Botları içinse bu sadece botunuzdaki sıralamasıdır. Yine aynı şekilde; Eğer "A" mesajının message idsi "B" mesajından büyükse "A" mesajı daha yenidir.

From Kategorisi
Gönderenin bilgilerinin ve mesaj içeriğinin bulunduğu kısımdır.

From.id
Gönderenin idsidir.

From.is_bot
Karşı tarafın bot olup olmadığını doğrular. False veya True olarak gönderir

From.first_name
Gönderenin ilk adını verir.

From.last_name
Gönderenin soyadını verir.

From.username
Gönderenin kullanıcı adını verir.

From.language_code
Dilinin kodunu söyler, mesela Türkçe için tr döndürür.

Chat Kategorisi
Konuşma ile ilgili bölümdür.

Chat.id
Konuşma kanalının idsidir. Kullanıcıya ve bota özeldir. Her gurubun veya konuşma bölümünün bir idsi vardır.

Chat.first_name
Bakınız: From.first_name

Chat.last_name
Bakınız: From.last_name

Chat.type
Gurup yada private(özel) mesaj olup olmadığını belirtir.

date
Tarihtir. Ben bile daha nasıl kullanıldığını çözemedim

text
Mesajdır. En çok dikkat çeken kısımdır.

2.3 - Mesaj gönderme
Bu ayrı bir linktir. Verdiğiniz bilgilere verdiğiniz mesajı gönderir. https://api.telegram.org/bot<tokeniniz>/sendMessage linkine doğru değerlerde post request yapılırsa aşağıdaki bilgiler gelir.
N9Lqry.png


2.4 - İnceleme.

Aynı olanlara deyinmeyeceğim. Bakabilirsiniz yukardan

text
Bunun dışındaki bütün kısımlar aynı. Burada ise size başka bir encoding ile verilmesi

2.5 - Post verileri
İki verileri göndermek yeterli. Bunlar ise chat_id ki bunu getUpdates kısmından alınır genellikle, birde text. Buda göndereceğimiz metindir.

3 - Hadi örneklere geçelim!
Bu bölümde python kullanacağız. Diğer örneklerdede sadece request atmanız yeterli. Kodu aşağıda veriyorum, incelemeleri yorum satırı olarak yazacağım

3.1 - Kod 1


Bu kod, Telegram'dan verileri çekip dict veri tipine çevirir.

Kod:
import requests as requ

url = "https://api.telegram.org/bot{}".format("1712778349:AAH6cK36Eyg-fScZDiUJqQdqQ2CuIcz2C7E") # Urlmizi formatlayarak oluşturduk.
json_data = requ.get(url + "/getUpdates").json() # Updates kısmından bilgilerialıp dict veri tipine çevirdik. Bu sayede bilgilerimize erişebileceğiz.



Kapanış

Burada pek fazla şeyi anlatamadım. Ancak daha fazla bilgi için bakabilirsiniz ayrıntılı ve örnekli yapmaya çalıştım. Ben sadece basit seviyedeki şeyleri anlattım. Bundan sonra bunun devamını getireceğim.

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.