Merhaba,
Direk dalıyorum konuya
Bildiğiniz üzere çok kullanışlı mesajlaşma programı telegramın ve uygulamanın bot menüsünde çok güzel botlar yapabilirsiniz.
Telegram uygulaması üzerinden bot kurulumunu yapıp tokeni aldıktan sonra botu çalıştırmak için server a ihtiyaç var.Bunun için heroku.com da bedava hesap açıp botunuzu ücretsiz çalıştırabilirsiniz. Heroku verdiği serverları webapp kurmamız için ayarlamış ve aylık belli çalışma saatleri var.
Bunun için server boşta kaldığı sürelerde uykuya dalması lazım ki verdiği bedava süre hemen bitmesin.
Aşağıdaki github reposunda paylaştığım kurulumu kendinize göre düzenleyip heroku hesabınıza entegre edip kullanabilirsiniz. Konuyla ilgilenen kişiler konu altında sorunlarını paylaşırsa yardımcı olmaya çalışırız.
https://github.com/metin02oktay/Heroku-telepot-webhoook
Github sayfasında heroku ile ilgili ayarlama dosyaları var önemli kısım kullanacağımız python scripti. Python3 kullanıyorum isteyen python2 kurulumuda yapabilir, heroku python2 yi hala destekliyor runtime.txt içine "python-2.7.17" yazmanız yeterli
- Temel düzeydeki kod bu şekilde. TOKEN kısmına telegram Botfather kanalında kurduğumuz botun Api Token yapıştırıyoruz.
- Detaylı bilgi: https://qpython.club/konu-telegram-bot-example.html teşekkürler gecemor
- Heroku.com üzerinde yeni makina kurduğumuzda isim vermenizi isteyecek, onu da APPNAME yazan yerlere eklemeyi unutmayın.
Şimdi benim paylaştığım bu temel script flask ve telepot ile ilgili değişik senaryolar internette var. Telepot kütüphanesi çok güzel ve basit, examples klasörünü incelmenizi tavsiye ederim. Telegramın güzel nimetlerini bot yoluyla yapmak kolaylaşıyor. Yüksek boyutta dosya gönderme, seçenekli cevaplar, grup içerisinde bot kullanımı baya güzel nimetleri kullandırıyor
Bide flask var tabi, heroku serveri ile telegram arasındaki iletişimini sağlıyor. Servere uykudayken bota bir mesaj geldiğinde telegram mesajı /webhook sayfasına iletir ve server çalışmaya başlar. Onun için ilk mesaj geldiğinde 3 saniyelik geç cevap gelir sonra şıkır şıkır cevaplar
- Dediğim gibi soru olursa elimizden geldiğince tecrübeli kişilerle beraber yardımcı olmak isteriz.
Kolay gelsin
Direk dalıyorum konuya
Bildiğiniz üzere çok kullanışlı mesajlaşma programı telegramın ve uygulamanın bot menüsünde çok güzel botlar yapabilirsiniz.
Telegram uygulaması üzerinden bot kurulumunu yapıp tokeni aldıktan sonra botu çalıştırmak için server a ihtiyaç var.Bunun için heroku.com da bedava hesap açıp botunuzu ücretsiz çalıştırabilirsiniz. Heroku verdiği serverları webapp kurmamız için ayarlamış ve aylık belli çalışma saatleri var.
Bunun için server boşta kaldığı sürelerde uykuya dalması lazım ki verdiği bedava süre hemen bitmesin.
Aşağıdaki github reposunda paylaştığım kurulumu kendinize göre düzenleyip heroku hesabınıza entegre edip kullanabilirsiniz. Konuyla ilgilenen kişiler konu altında sorunlarını paylaşırsa yardımcı olmaya çalışırız.
https://github.com/metin02oktay/Heroku-telepot-webhoook
Github sayfasında heroku ile ilgili ayarlama dosyaları var önemli kısım kullanacağımız python scripti. Python3 kullanıyorum isteyen python2 kurulumuda yapabilir, heroku python2 yi hala destekliyor runtime.txt içine "python-2.7.17" yazmanız yeterli
# -*- coding: utf-8 -*-
# !/usr/bin/env python3
from flask import Flask, request
import telepot.namedtuple
from telepot.loop import OrderedWebhook
import requests
#ne eklemek isterseniz eğer kurulu değil ise requirements.txt satır olarak ekleyin youtube-dl,mechanize,bs4,....
TOKEN='TELEGRAM-TOKEN'
def selam():
bot.sendMessage(chat_id,"iyiyim, sen nasılsın \xF0\x9F\x98\x8C ",parse_mode='Markdown')
def handle(msg):
global chat_id
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True)
m = telepot.namedtuple.Message(**msg)
#print (msg)
if (m.chat[4]==None) and (m.chat[5]==None):
user = (m.chat[3])
elif m.chat[5]==None:
user = m.chat[4]
else:
user = (m.chat[4]+" "+m.chat[5])
if (("text" in msg) != True):
bot.sendMessage(chat_id, f'Hahaha gönderdiğin emoji çok komik \xF0\x9F\x98\x82 *{user}*\n',parse_mode='Markdown',reply_to_message_id=msg_id)
elif msg['text'] == "nasılsın?":
selam()
else:
#gelen metin mesajı: msg['text'] onu geri gönderelim,
bot.sendMessage(chat_id, msg['text'],parse_mode='Markdown',disable_web_page_preview=True)
print ('Bot Aktif ...')
PORT = int(os.environ.get('PORT', 8443))
app = Flask(__name__, static_url_path = "", static_folder = "./") #static folder, resim,dosya vs flask ile açmak için
bot = telepot.Bot(TOKEN)
webhook=OrderedWebhook(bot, {'chat': handle})
@app.route('/', methods=['GET'])
def index():
#ana sayfaya botun telegram linkini ekleyebilirsiniz
return "<p>Merhaba, bu bir telegram botu</p><p><a href='https://t.me/......'>Botu baslat</a></p>"
@app.route('/videolar', methods=['GET', 'POST'])
def index3():
#https://APPNAME.herokuapps.com/videolar?isim=video1&tur=mp4
isim=str(request.args.get("isim")) #video1 dönderir
tur=str(request.args.get("tur")) #mp4 dönderir
return "video sayfasi"
@app.route("/webhook", methods=['GET', 'POST'])
def pass_update():
webhook.feed(request.data)
return 'OK'
if __name__ == '__main__':
try:
bot.setWebhook("https://APPNAME.herokuapp.com/webhook") #APPNAME yazan yere heroku da kurduğunuz makinanın ismini verin, telegramla iletişim için
# Sometimes it would raise this error, but webhook still set successfully.
except telepot.exception.TooManyRequestsError:
pass
webhook.run_as_thread()
app.run(host='0.0.0.0',port=PORT, debug=True)
- Temel düzeydeki kod bu şekilde. TOKEN kısmına telegram Botfather kanalında kurduğumuz botun Api Token yapıştırıyoruz.
- Detaylı bilgi: https://qpython.club/konu-telegram-bot-example.html teşekkürler gecemor
- Heroku.com üzerinde yeni makina kurduğumuzda isim vermenizi isteyecek, onu da APPNAME yazan yerlere eklemeyi unutmayın.
Şimdi benim paylaştığım bu temel script flask ve telepot ile ilgili değişik senaryolar internette var. Telepot kütüphanesi çok güzel ve basit, examples klasörünü incelmenizi tavsiye ederim. Telegramın güzel nimetlerini bot yoluyla yapmak kolaylaşıyor. Yüksek boyutta dosya gönderme, seçenekli cevaplar, grup içerisinde bot kullanımı baya güzel nimetleri kullandırıyor
Bide flask var tabi, heroku serveri ile telegram arasındaki iletişimini sağlıyor. Servere uykudayken bota bir mesaj geldiğinde telegram mesajı /webhook sayfasına iletir ve server çalışmaya başlar. Onun için ilk mesaj geldiğinde 3 saniyelik geç cevap gelir sonra şıkır şıkır cevaplar
- Dediğim gibi soru olursa elimizden geldiğince tecrübeli kişilerle beraber yardımcı olmak isteriz.
Kolay gelsin