• Kişi botunda bir grup nasıl oluşturulur. Beş dakikada kendi başınıza bir bot nasıl oluşturulur?

    Habercilerdeki botlar sezonun trendi. Bildirim ve haber gönderiyorlar, çağrı merkezlerinin yerini alıyorlar, oyun oynuyorlar, genel olarak her türlü hizmeti sohbet formatına entegre ediyorlar.

    Birkaç dakikada kendi botunuzu oluşturabileceğiniz gibi bazen programlama dillerini bile bilmeden yapabilirsiniz.

    habercide Telgraf bot oluşturmak ve önceden oluşturulmuş olanları yönetmek için özel bir bot var - @BotFather . Onunla konuşmaya başlayın ve istemleri takip ederek birkaç basit adım atın.

    İletişim kutusuna yazın / çaylak Yeni bir bot oluşturmak için. @BotFather, yeni botun adının ne olacağını ve hangi kullanıcı adının kullanılacağını soracaktır (Telegram'daki tüm botların adı "bot" ile bitmelidir). Ardından, botun yeteneklerinin bir açıklamasını ve bir kullanıcı resmini eklemeyi ve ayrıca botun daha fazla yapılandırılması ve çalıştırılmasında faydalı olacak benzersiz bir belirteç vermeyi teklif edecek.

    Her şey, bot hazır.

    • sohbet yakıtı - yayıncıların botlarını yapmalarına yardımcı olan bu hizmetti Forbes Ve TechCrunch ve Yandex'den yatırım çekti. Bununla Telegram için bir bot yapabilir ve Facebook haberci ve gelecekte Slack, Kik, WhatsApp ve Viber için. Botunuzu kurma hizmeti, @Chatfuelbot botu ile iletişim modunda da çalışır. Şimdiye kadar hepsi ücretsiz;
    • api.ai - Facebook Messenger ve Slack için sohbet botları oluşturmaya yönelik bir hizmet. Botu bağlayın ve web arayüzü aracılığıyla komutları ve kullanıcı mesajlarına tepkileri ayarlayın, doldurun ve düzenleyin adım adım formül. Botunuz ayda 6.000'den az isabet aldığı sürece araç ücretsizdir. O zaman bir abonelik satın almalısınız - ayda 89 dolardan.
    • meya - Bot oluşturmaya yönelik başka bir hizmet, Telegram, Slack, Kik, Facebook Messenger, Twitter vb. İle çalışır. Botlar, veritabanları, kullanıcının doğal konuşmasını anlamak için bir çerçeve, entegrasyon araçları vb. sağlar.

    Ve siteden bota abone olmadıysanız, o zaman yapmanın zamanı geldi! @iPhonesRu_Bot

    Artık Telegram botlarını başlatmak çok moda. Her büyük İnternet kaynağı veya büyük şirket müşterilerin sorularına cevap aldığı veya haberleri okuduğu bir bot var. Kendi web siteniz, sosyal ağ grubunuz varsa veya sadece ilginç fikir bot, o zaman bu kılavuz Telegram'ın büyülü dünyasına minimum çabayla katkıda bulunmanıza yardımcı olacaktır.

    Bot oluşturmanın iki yolu vardır. Birincisi, Telegram API'sini kullanarak bir uygulama yazmak, ikincisi ise hizmeti bot oluşturmak için kullanmak. Bunlardan biri olan manybot.io yazımızda kullanacağız.

    Telegram'ı Yükle

    Makaledeki talimatlar takip edilebilir. Telgraf sürümleri herhangi bir platform için:

    • Windows/Linux/OS X (bağlantı şu sürümü açacaktır: işletim sistemi kiminle oturuyorsun)

    Tam bir klavye olmadan bir bot oluşturmak pek uygun olmadığı için OS X sürümünü kendim kullanacağım.

    bot oluştur

    1. Aramaya Manybot yazıp bot ikonuna tıklayıp butona tıklıyoruz başlangıç:

    2. Düğmeye tıklayın yeni bot ekle:

    4. Git @BotBaba, düğmesine basın başlangıç ve komutu girin /yenibot:

    6. Arama sırasında görüntülenecek botun adını ve botun teknik adını girin, alınan API belirtecini kopyalayın:

    7. @Manybot'a dönün ve API belirtecini panodan ona yapıştırın:

    8. Botun açıklamasını belirtin:

    9. Bot hazır:

    10. Arama yoluyla botunuzu bulun ve kullanmaya başlayın:

    Ekibimizi oluşturuyoruz

    İÇİNDE iyi bot komutlar olmalıdır. Böylece kullanıcı bir istek girer ve yanıt olarak ilginç / yararlı bir şey alır. İşte basit bir komutun nasıl oluşturulacağına dair bir talimat:

    1. İşe Alım / komutlar:


    2. Yeni komutun adını ve yanıt olarak vereceği metni yazıyoruz (istenirse metne dosyalar eklenebilir):


    3. Düğmeye basın Kaydetmek ve komutun oluşturulmasının tamamlanmasını bekleyin:

    Bir komutu düzenlemek için /Merhabaçevirmek gerek / komutlar, /Merhaba:

    Komutun cevabını görmek için butona tıklamalısınız. Komutu göster. Ne yazık ki, botun aboneler için uygulamada nasıl görüneceğini kontrol etmenin, birinden hesabından giriş yapmasını ve şunu görmesini istemekten başka bir yol bulamadım:

    Menüye öğe ekleme

    İstenirse, komut için menüde onu başlatacak bir düğme yapabilirsiniz.

    1. İşe Alım / komutlar:

    2. Düğmeye tıklayın Ana menüyü özelleştir ve sonra düğmede Menü öğesi ekle:

    3. Menüye eklemek istediğimiz komutu listeden seçin ve buton için isim belirleyin:

    Sosyal ağlardan otomatik yayınlamayı etkinleştir

    Botlar, Twitter, Youtube, VK veya RSS'den haber yayınlayacak şekilde yapılandırılabilir.

    1. Bir ekip oluşturmak /otomatik gönderme:


    2. İstediğiniz sosyal ağ ile düğmeye basın ve sayfanın bağlantısını belirtin:

    Planlanmış bir gönderi oluştur

    Telegram botlarında, tüm abonelerine gönderilecek mesajları gönderebilirsiniz. İşte böyle bir mesajın nasıl oluşturulacağına ve belirli bir zamanda gönderilmesinin planlanmasına ilişkin bir talimat:

    1. Bir ekip oluşturmak /yeni posta:


    2. Gönderinin metnini girin ve düğmesine tıklayın Gönderiyi Ertele, geçerli saati belirtin:


    3. Gönderinin zamanını belirtin ve gönderiyi kaydedin:

    veri topluyoruz

    Botların yardımıyla aboneler arasında anketler yapabilirsiniz:

    1. İşe Alım / komutlar, menü öğesini seçin Takım oluştur ve yeni komut için bir ad girin:

    2. Düğmeye tıklayın soru ekle, yanıt türünü seçin ve sorunun metnini girin:

    Bu nedenle, bu makalede, ekrandaki nesneleri görsel olarak aramaya dayalı basit bir botun nasıl oluşturulacağını göstereceğim. avantaj Bu method için "görünmezlik" çeşitli sistemler bot koruması. Bir bot yazmak için, doğal olarak bot geliştirmek için özel bir ortam kullanacağız. Botlar, tekrarlayan rutin eylemleri gerçekleştirmeniz için size zaman kazandırmak amacıyla oluşturulduysa, NOMAD, bir bot yazarken size zaman kazandırmak için oluşturulur. Uzmanlaşmamış veya çok özelleşmemiş programlama ortamlarında bot yazmakla karşılaştırıldığında, NOMAD üzerinde geliştirme onlarca hatta yüzlerce kat daha hızlı olabilir. (çünkü NOMAD'de zaten yerleşik olarak bulunan nesne algılama araçlarını başlamak için hazır hale getirmeniz gerekiyor). NOMAD dağıtım kitini bot zaten kuruluyken bu makaleden bu bağlantıyı kullanarak indirebilirsiniz (dikkat! dağıtım kitindeki program ayarları onu varsayılan klasöre yüklemek için tasarlanmıştır, başka bir konuma kurarsanız yolları değiştirirsiniz) oynatıcıyla veritabanına ve yapıcıya!)

    yönetici robotu
    Tarihi: 22.07.2015

    Çoğunluğu yönetmek, azınlığı yönetmekle aynı şeydir. Organizasyonla ilgili.

    Sun Tzu

    Şimdi görevimiz bir bot programının nasıl yapıldığını göstermek ve bu nedenle otomasyon için basit ve aynı zamanda herkesin erişebileceği bir şey seçeceğiz, örneğin bir Hesap Makinesi. Elbette bu bir çevrimiçi oyun değil, ama inanın bana bir bot oluşturmak için Çevrimiçi oyunlar farklı değil (dikkat, örnek Windows 8 ve Windows 7'de çalışmaktadır ve hesap makinesi aşağıdaki ekran görüntüsündeki gibi görünmelidir, yani örneğin Windows XP'de hesap makinesi çağrılır ve farklı görünür ve bu nedenle bot orada çalışmaz)

    Bir şeyi "otomatik" olarak oynamaya başlamak için aşağıdaki adımlardan geçmemiz gerekir:

    1. Kendiniz için bir görev formüle edin. Botumuz hangi hedeflere ulaşmalı?
    2. Bunu başarmak için hangi adımları atması gerekiyor?
    3. Göreve bağlı olarak, paragraf 1'de açıklanan hedeflere ulaşmak için hangi nesneleri görmesi ve nasıl ve hangi olaylara tepki vermesi gerektiğini belirleyin.
    4. Algoritma oluşturma.
    5. Programlama.

    Botumuzun görevi, hesap makinesine 2 sayı 59 ve 3'ü sonsuza kadar eklemek olacaktır.

    Hedefimize ulaşmak için, hesap makinesinin 5 ve 9 düğmelerine basmak için programımıza ihtiyacımız var ve başarılı olursa, + düğmesine ve 3 düğmesine ve ardından = düğmesine basın.

    Bu nedenle, görüntüdeki bu nesneleri aramamız ve ardından fareyle onları dürtmemiz gerekecek. Bir sonraki iterasyona başlamadan önce hesaplamaları 0'a sıfırlamak için CE düğmesinin yanı sıra sonuç alanındaki 59 sayısını ve 0 sayısını da analiz edeceğiz.

    Yani algoritmamız: Sonsuz döngüönce ararız ve 5 düğmesine ve 9 düğmesine tıklarız. Başarılı olursa, 3 saniye duraklarız (sonucun tadını çıkarmak için zamanımız olur). Daha sonra elimizde 59 sayısının görüntüsü var mı diye kontrol ediyoruz, varsa hesap makinesinin + ve 3 butonlarını bulup tıklıyoruz, bu işlemler de başarılı bir şekilde tamamlandıysa daha sonra = butonunu bulup tıklıyoruz. hesap makinesi. Sonra 5 saniye uyuyoruz. Ardından sonuç alanında resim 0 olup olmadığını kontrol ediyoruz, ardından önceki hesaplamaların sonuçlarını sıfırlamak için CE düğmesine basmanız gerekiyor. Ardından iterasyon tekrarlanır. Esc düğmesine basmak programı durdurur.

    Elimizdeki programın kodunu gösterelim:

    Delphi/Pascal

    StartProcedureOnClick(); start while (getasynckeystate($1B) = 0) do //döngü Esc++'a basılana kadar devam eder start eğer beş.MouseClick("l") ve nine.MouseClick("l") sonra //beş ve 9'a başarıyla basıldıysa o zaman uykuya başla(3000); //eğer ellidokuzsa 3 saniye uyu.FindPicture sonra //eğer 59 bulursak onlara 3 ekle: başla if plus.MouseClick("l") ve üç.MouseClick("l") sonra //eğer başardıysak artı 3'e basın, ardından equal.MouseClick("l"); son; son; uyku(5000); //sıfır değilse 5 saniye uyu.FindPicture sonra //skorbordda sıfır yoksa CE.MouseClick("l"); //ardından CE Application.ProcessMessages'a tıklayın;//çalışma sırasında pencereye gelen mesajları zorla işler //örneğin //mesaj basın Esc tuşları. Aramazsanız // program "donabilir", Esc'ye vb. basmaya kötü yanıt verebilir. son; //döngü, Esc tuşuna basılana kadar devam eder -- ShowMessage("Program durduruldu!"); son;

    StartProcedureOnClick();

    başlamak

    while (getasynckeystate($1B) =0) yap //döngü Esc++ tuşuna basılana kadar devam eder

    başlamak

    eğer beş . MouseClick ("l") ve dokuz . MouseClick("l" ) sonra // beş ve 9'a başarıyla basıldıysa o zaman

    başlamak

    uyku(3000); //3 saniye uyu

    eğer elli dokuz . Resmi Bul o zaman //eğer 59 bulursak, onlara 3 ekleyin:

    başlamak

    artı ise. MouseClick("l" ) ve üç . MouseClick("l" ) sonra //artı 3'e bastığı ortaya çıktıysa, eşit'e basın

    eşit . MouseClick("l");

    son ;

    son ;

    uyku(5000) ; //5 saniye uyu

    sıfır değilse. Resmi Bul o zaman //eğer puan tablosunda sıfır yoksa

    CE MouseClick("l"); //ardından CE'ye basın

    başvuru. İşlem Mesajları; // zorla işleme

    //çalışma sırasında pencere tarafından alınan mesajlar, örneğin

    // Esc tuşuna basılmasıyla ilgili mesaj. aramazsan o zaman

    //program "donabilir", Esc tuşuna vb. basmaya kötü yanıt verebilir.

    son ; //döngü Esc tuşuna basılana kadar devam eder --

    Mesajı Göster( "Program durduruldu!") ;

    son ;

    Burada biraz ileri koştuk, hemen kodu yazdık çünkü. NOMAD'de öncelikle aradığımız resim şablonlarını oluşturmamız gerekiyor. Dolayısıyla, koda bakarsanız, şu girişleri görebilirsiniz: beş, dokuz, ellidokuz, artı, üç, eşittir, sıfır, CE - nedir bu? ve bunlar aslında bu şablonlardır, NOMAD'de onlarla nesnelerle olduğu gibi koddan çalışabilirsiniz, yani. nesnenin adını koda yazıp yöntemini çağırıyoruz, örneğin: FindPicture - şablon görüntüsünü bulun, MouseClick('l') - şablon görüntüsünü bulun ve üzerine sol tıklayın. NOMAD'ın yeteneklerini ve işlevlerini ayrıntılı olarak incelemek için başvurmanızı tavsiye ederim. Şimdi de eksik şablonları nasıl oluşturduğumuzu kısaca anlatacağım:

    Öncelikle bir veritabanı oluşturalım, bunun için Launcher'da EKLE butonuna basın, açılan pencerede ilk alana veritabanının adını (Örneğin Hesap Makinesi) yazın ve ikinci alana da veritabanının adını yazın. programladığımız her şeyi saklamak istediğimiz dizin. Onlar. programımızın asıl kaynak kodu yani veri tabanıdır. Ardından, Kaydet düğmesine tıklayın ve listede bir girişimiz olmalı. Seçin ve Oluşturucu düğmesine basın.

    İkinci olarak, bizim durumumuzda pencerenin, hesap makinesi penceresinin resimlerini çekmekten sorumlu bir nesne olan bu ekran görüntüsü ardışık düzenini oluşturmanız ve yapılandırmanız gerekir. Yani programı Constructor modunda açıyoruz, sağda açılan pencerede aşağıdaki resmi görmeliyiz:

    Resimde vurgulanan öğede Mavi renk Sağ tıklayın ve menüden "Ekran Görüntüsü Konveyörü Ekle" seçeneğini seçin. Görünen pencerede adını belirtin - "Calc". Ve Giriş düğmesine basın. Bundan sonra, ScreenShotPipe bölümündeki nesne ağacında aynı ada sahip bir nesne görünmelidir. Orada bulun ve farenin sol tuşuyla tıklayın. Programın sol tarafında aşağıdaki pencere görünecektir (özellikler farklı bir sırada görünebilir):

    Sizin için görünmesi gerektiği gibi zaten doldurdum. Aslında, her şey zaten belirtilmiştir, sadece WindName alanına Hesaplayıcı kelimesini yazmak gerekir. Tüm ardışık düzen hazır ve size bu ardışık düzeni neden yaptığımızı anlatacağım şablonlar oluşturmaya başlayabiliriz.

    Üçüncü olarak hesap makinesini çalıştırıp fotoğrafını çekeceğiz, fotoğraf çekmek için sol tarafta yer alan ScreenShot butonuna basmanız gerekiyor. üst köşe Yapıcı. Bundan sonra, ekran görüntüsü olan bir TV penceremiz olacak. Şimdi Kes düğmesine basmamız ve TV penceresinde hesap makinemizi seçmemiz gerekiyor, bu işlemlerin sonucu hesap makinesi görüntüsü olan bir TV penceresi olmalıdır.

    Kenarlıklar düğmesine tıklayın ( Not. bu makale yazıldığından beri, programda FixBorders modu belirdi (aylı siyah bir monitör düğmesi), kullanmanızı tavsiye ederim. Borders ile aynı şekilde kullanılır, ancak dinamik görüntülerde çok daha kararlı çalışır.) ve şablon oluşturmaya başlayın. Örnek olarak "+" düğmesi şablonunu kullanarak bunun nasıl yapıldığını açıklayacağım - görüntünün başka yerlerde tekrarlanmayan en karakteristik bölümünü seçmeliyiz. Aslında + sembolünün kendisini seçiyoruz, Seç düğmesine basıyoruz ve bir kutuda bu işareti seçiyoruz:

    Noktalı karenin içine sağ tıklıyoruz ve bir pencere açılıyor:

    adını “artı” yazdığımız alana (bu nesne kodumuzda yazıldığı için) ve Giriş düğmesine basın. Nesne ağacının Şablonlar bölümünde bu isimde bir nesnemiz var. Üzerine tıklayın ve solda bize zaten tanıdık gelen bir pencere görünecektir:

    Burada içindeki ConnectedScreen özelliğini değiştirmemiz gerekiyor, başlangıçta oluşturduğumuz ekran görüntüsü boru hattını seçmeliyiz çünkü. Varsayılan olarak, yalnızca hesap makinemizin değil, tüm masaüstünün fotoğraflarını çeken küresel konveyör burada seçilir. Bu, minimal şablon özelleştirmesini tamamlar ve bu bizim için yeterli olacaktır diye düşünüyorum. Bununla ilgili daha fazla ayrıntı belgelerde bulunabilir. Şablonlara eklememiz gereken diğer tüm nesneler için de aynısını yapmanız yeterli. Tüm şablonları ekledikten sonra, nesne ağacı şöyle görünmelidir:

    Giriş durumu da dahil olmak üzere adların tam olarak resimde gördüğünüzle eşleşmesi çok önemlidir. Örnekte, beş ve dokuz şablonları ColMap modunda farklı bir şekilde yapılmıştır, bunun nasıl yapıldığına ilişkin ayrıntılar için belgelere başvurmanızı öneririm. Program kodunun çalışmasına pek bir etkisi olmayacaktır ve tüm şablonları + butonu şablonu ile aynı şekilde yapabilirsiniz. Veya hiçbir şey yapamazsınız ve hazır bir dağıtım kitini bir örnekle indirebilirsiniz.

    Ellidokuz ve sıfır şablonları oluşturmak için resimde vurgulanan hesap makinesi bölümü için bir şablon oluşturmanız gerekir:

    Tüm şablonlar.

    3) Ayrıca oluşturmamız gerekiyor GUI kullanıcı ile iletişim kuracağı program. Bunu yapmak için Program Tasarımcısında "Windows" menüsüne girin ve "Form Tasarımcısı" öğesini seçin.

    Üzerine çift tıklamanız gereken bir form içeren bir pencere açılır ve açılan pencereden her iki form alanına da bir Button nesnesi ekleyin, Başlat yazın. Tamam'a tıklayın ve formdan çıkın ve ana formda bir Başlat düğmemiz var, üzerine tıklayın ve özellikler menüsü tekrar görünür, Etkinlikler sekmesine tıklayın ve aşağıdakilere bakın:

    OnClick olayına karşı Value sütununda, çift tıklayın ve yukarıdaki resimdeki değer otomatik olarak Value içine doldurulur. Ve orta pencerede bir metin düzenleyici belirir:

    Makalenin başında verdiğim kodla değiştirmemiz gereken bu metindir. Artık program hazır. Başlamak için, iki disket görüntüsüne sahip düğmeye basarak programı kaydetmeniz, ardından çapraz tornavida ve anahtar resminin bulunduğu düğmeye basarak programı derlemeniz ve ardından Başlat düğmesine basmanız veya içinden çalıştırmanız gerekir. başlatıcı. Yapıcıdan, program her zaman hata ayıklama modunda çalıştırılır, bu nedenle hata ayıklama mesajları görüntülenecektir. Her şeyi doğru yaptıysak, oluşturduğumuz düğmeyi içeren bir pencere görmeliyiz:

    Hesap makinesini başlatıyoruz, masaüstünde görünür hale getiriyoruz ve başlat düğmesine basıyoruz. yorulunca basın Esc düğmesi, ve programın bittiğini belirten bir mesaj bekleyin.

    Bu kadar. Zor? Bunu geleneksel bir programlama dilinde yapmak çok daha zordur. Şahsen, bu makale hakkında söyleyemeyeceğim bu botu yazmam yarım saatten fazla sürmedi.

    Diğer bot örnekleri forumda aranabilir, örneğin,

    Bir kanala haber göndermek ve 6 adımda soruları otomatik olarak yanıtlamak için basit bir bot yapmak.

    yer imlerine

    Materyal desteği ile hazırlanmıştır.

    Chatbotların etkinliği konusunda IT basınında hararetli tartışmaların ardından kullanıcılar ve şirketler ekosisteminde yerlerini aldılar. Örneğin, projeler genellikle herhangi bir olay hakkında bildirimde bulunmak için robotlar uygular ve destek hizmetleri, müşterinin sık sorulan sorularını hızlı bir şekilde yanıtlamak için botları kullanır.

    Bu eğitimde, bot oluşturmanın en kolay yoluna bakacağız. kendi ellerimle ve nasıl çalıştığını açıklayın.

    Web sitesinde veya Facebook'ta yayınlanan şirket haberlerini otomatik olarak Telegram kanalına gönderebilen bir bot geliştirmeye başlayalım.

    Adım 1. Telegram'da bir bot oluşturun

    Telegram'daki bir bot, BotFather adlı başka bir bot kullanılarak oluşturulur. Ona /newbot komutunu gönderiyoruz, kişi listesinde görüntülenecek adı ve adresi seçiyoruz. Örneğin, "dtf_news_bot" adresiyle "DTF için Bot".

    Adres meşgul değilse ve ad doğru girilirse, BotFather, oluşturulan bota erişmek için bir "anahtar" olan bir belirteç içeren bir mesaj geri gönderir. Saklanmalı ve kimseye gösterilmemelidir.

    BotFather aracılığıyla bir bot avatarı, açıklama ve daha fazlasını da ekleyebilirsiniz.

    2. Adım. Telegram'da bir kanal oluşturun

    Şimdi herhangi bir isim ve adresle bir kanal oluşturuyoruz ve ayarlarına gidiyoruz. Tek gereken, oluşturduğumuz botu yöneticiler listesine eklemek - kanala notlar yayınlayacak olan bot olacak.

    Bir bot aramak için adresini kullanabilirsiniz. Örneğin, "dtf_news_bot".

    3. Adım: Bir Koşul Oluşturun

    Sonraki aşama- bota siteden oluşturulan kanala haber göndermeyi öğretin. Bunun için kullanıyoruz popüler hizmet IFTTT otomasyonu için.

    Bununla, botun çalışması için talimatlar oluşturabilirsiniz. Bizim durumumuzda şuna benziyor: sitenin RSS akışında her yeni giriş göründüğünde, Telegram kanalına bir mesaj göndermelidir.

    IFTTT, Eğer Bu O Zaman Şu anlamına gelir

    IFTTT "Uygulamalarım" bölümüne gidin, "Yeni Uygulama" düğmesine ve ardından "Bu" bağlantısına tıklayın. Fonksiyonlar listesinde Besleme , Yeni besleme öğesi tetikleyicisini buluyoruz ve RSS beslememizin URL'sini belirtiyoruz. Örneğin, Wordpress siteleri için genellikle example.com/feed/ adresinde bulunur.

    Bir RSS beslemesi yerine, Twitter veya Facebook hesabındaki yeni girişlerin görünümünü takip edebilirsiniz - IFTTT her işlev için ayrı modüller sağlar.

    Şimdi ikinci adıma geçelim - tespit edildiğinde gerçekleştirilecek eylemi seçin Yeni giriş RSS'de. "O" üzerine tıklayın ve Maker Webhook'u arayın, "Web isteği yap" - bu modülü kullanarak, herhangi bir hizmete istek gönderebilirsiniz. Bizim durumumuzda, Telegram'daki bota.

    Açılan formda URL alanında https://api.telegram.org/bot linkini belirtmeniz gerekmektedir. JETON/sendMessage içine ilk adımda oluşturulan belirteci değiştirerek. Yöntem: POST, içerik türü: uygulama/json.

    Gövde - Telegram'a gönderilecek bir istek şablonu alanı. İçinde mesajın hangi kanala gönderilmesi gerektiğini ve içine ne yazılması gerektiğini belirtiyoruz:

    ("chat_id":"@channel_address", "text":"((EntryTitle)) ((FeedUrl))")

    • chat_id- mesajın gönderileceği kanalın adresi. Böylece, bir bot aynı anda birkaç kanala bağlanabilir. Alıcı olarak belirli bir kullanıcıyı da belirleyebilirsiniz. Bu durumda kanal adresi yerine kimliğini belirtmeniz gerekir (bot kullanılarak elde edilebilir).
    • metin- mesaj içeriği. Örneğin, RSS'deki materyalin başlığı (EntryTitle), içeriği (EntryContent) ve bağlantı (FeedUrl). Liste mevcut seçeneklerİçerik düğmesine tıklayarak görüntülenebilir.

    Her şey doğru ayarlanmışsa, bot, RSS beslemesinden kanala bir mesaj gönderir. IFTTT'deki tetikleyici bir gecikmeye sahiptir, bu nedenle RSS beslemesinde görünen mesaj Telegram'a hemen değil, 30-60 dakika sonra gidecektir.

    Mesaj gönderme koşulu olarak, IFTTT'de mevcut olan herhangi bir senaryoyu seçebilirsiniz. Örneğin, Weather Underground her gün yarın için bir hava tahmini içeren bir mesaj gönderebilir. Hisse senedi tetikleyicisi, işlem kapanışında hisse senedi fiyatlarını gönderecek şekilde yapılandırılabilir.

    Şimdi daha zor bir görevi çözelim - oluşturulan bota kullanıcı mesajlarına yanıt vermeyi öğreteceğiz. Örneğin, bir fiyat listesi, iletişim bilgileri gönderin veya müşterilerden gelen sık sorulan soruları komutla yanıtlayın.

    Adım 4. Sunucunun bağlanması

    Bu aşamada, web barındırma ve Let's Encrypt hizmeti kullanılarak ücretsiz olarak edinilebilen bir SSL sertifikasına ihtiyacınız olacak.

    Bot için ayrı bir alt etki alanı - örneğin bot.example.com - oluşturmak ve üzerine bir index.php dosyası yerleştirmek en uygunudur. Dosyanın içine Telegram web sitesinden en basit botun kodunu yerleştiriyoruz.

    Bot kodunda sadece iki değişiklik yapılması gerekiyor:

    • Çizgide define("BOT_TOKEN", "12345678:replace-me-with-real-token"); 12345678:replace-me-with-real-token yerine ilk adımda elde edilen belirteci yazın;
    • Çizgide define("WEBHOOK_URL", "https://sitem.example.com/secret-path-for-webhooks/"); https://my-site.example.com/secret-path-for-webhooks/ yerine bot kodunu içeren dosyanın URL'sini belirtin: https://bot.example.com/index.php.

    Adım 5. Telegram botunu ve sunucuyu bağlarız

    Şimdi Messenger'daki bot'a gönderilen isteklerin betiğimiz tarafından işlenmesi için Telegram ile sunucudaki dosyayı bağlamamız gerekiyor.

    Bu bir konsol gerektirecektir. Farklı barındırma sağlayıcıları için, site yönetimi arayüzünün farklı bölümlerinde bulunabilir. Ayrıca macOS üzerinde Terminal programını içinden komut girerek kullanabilirsiniz. ssh username@domain_address.

    Şifreyi girdikten sonra alt alan adımız için basit bir komut yazıyoruz. :

    php -f /var/www/bot.example.com/index.php

    Tanıştığımıza memnun oldum - bot'un kullanıcı tarafından gönderilen bir mesaja verdiği yanıt.

    Kodun altına ek cevaplar ekliyoruz. Örneğin, gönderilen kelimeye bağlı olarak, bot gönderir gerekli bilgi kullanıcı (olduğu gibi

    İÇİNDE Son zamanlarda Telgraf herkesin ağzında. Bu uygulamanın pazarlama departmanına haraç ödemeliyiz, yutturmaca ün kazandı. Telegram'ın ana "çiplerinden" biri, sözde güvenliğidir - Pavel Durov'a göre, kullanıcılar arasındaki tüm yazışmalar şifrelenir. Üstelik dünyadaki tek bir özel servis bile mesajlarınıza erişemez. Ancak bu makale bununla ilgili değil. Bugün Telegram'daki eşit derecede harika bir özellikten, yani botlardan bahsetmek istiyorum. Ağın zaten çeşitli türde bilgilerle dolu olmasına ek olarak telgraf botu x (örneğin github bot), haberci API'sini geliştiriciler için açtı ve artık herkes blackjack ve güzelliklerle kendi botunu yaratabilir.

    Yazıda Python ve Django framework kullanarak online bot yazma örneği vereceğim. Yani, uzak bir ana bilgisayarda dönecek ve kullanıcılardan gelen komutları kabul edecek tam teşekküllü bir web uygulamasını "keseceğiz". Tüm kaynak kodları github depomda mevcuttur.

    Telegram botlarıyla etkileşim sürecini açıklayan belgeler bulunur. Tekerleği yeniden icat etmemek için botların tüm temel işlevlerini uygulayan iyi bir Python kitaplığı buldum - telepot . Daha önce de belirttiğim gibi botumuzun kullanıcılarına hizmet verebilmek için Django çatısını kullanarak bir web uygulaması geliştireceğiz.

    Telegram botu nasıl oluşturulur?

    Öncelikle, gelecekteki botumuzu Telegram'a kaydetmemiz gerekiyor. Bu, aşağıdaki şekilde yapılır:

    • yüklemeniz gerekiyor telgraf uygulaması telefonunuza veya bilgisayarınıza. uygulamayı indirebilirsiniz
    • Kişi listemize isimli bir bot ekliyoruz. Robot Baba
    • Düğmeye basarak bot ile "iletişim" prosedürünü başlatıyoruz başlangıç. Ardından, tam olarak ekran görüntüsündeki gibi bir komut listesi göreceğiz.
    • Yeni bir bot oluşturmak için komutu çalıştırmanız gerekir. /yenibot ve talimatları izleyin. dikkat bir bot için kullanıcı adı her zaman bot kelimesiyle bitmelidir. Örneğin, DjangoBot veya Django_bot.

    • Botumuz için, ana işlevi ayrıştırmak olduğu için PythonPlanetBot adını seçtim. RSS beslemesi Python Planet sitesi ve kullanıcıya en son gönderiler hakkında bilgi gösteriliyor :)

    Botu oluşturduktan sonra, metnin bulunduğu satıra dikkat edin:

    HTTP API'sine erişmek için bu belirteci kullanın:

    Bunu sözde takip eder. botumuzu manipüle edeceğimiz belirteç. Bir telgraf botu oluşturma işlevine ek olarak, BotFather ayrıca bir dizi başka özelliğe de sahiptir:

    • Bot'a bir açıklama verin
    • avatarı ayarla
    • Jetonu değiştir

    Kodlamaya Başlarken

    Daha önce de belirttiğim gibi, yazacağız Django web uygulaması. Ancak bunun gerekli olmadığını belirtmekte fayda var. Normal bir Python betiği ile idare edebilirsiniz, ancak bu durumda bot kullanıcılarından gelen yeni istekler için Telegram'ı periyodik olarak yoklamak gerekli olacaktır (yöntemi kullanarak) Güncellemeleri al) ve tekrar olmadan en son verileri almak için artan ofset. Telegram, botunuz için komutları/mesajları almak için birbirini dışlayan iki yönteme sahiptir.

    • Kullanım API çağrısı yöntem Güncellemeleri al
    • Web kancası Kurulumu

    Bir Webhook kurmak, birisi bota her mesaj göndermeye başladığında bir POST isteği alacak olan özel bir URL'yi bota iletmeyi içerir. Bot ile kullanıcısı arasındaki etkileşim için kullanacağımız bu seçenektir. URL'yi ayarlamak için API yöntemini kullanmalısınız. setWebhook. URL'nin https ile başlaması gerektiğini, yani güvenli olması gerektiğini unutmayın. SSL bağlantısı geçerli bir sertifika ile. Telegram, yöntemde gerektirmesine rağmen, kendinden imzalı bir sertifikanın kullanılmasına izin verir. setWebhook ayrıca ortak anahtarı PEM formatında (ASCII base64) gönderin. Veya Let's Encrypt'ten alabilirsiniz.

    Hakkında daha ayrıntılı Güncellemeleri al Ve setWebhook sırasıyla okunabilir ve .

    Öyleyse geri dönelim piton kütüphanesi Telegram ile çalışmak için - telepot. Şu anda en son sürümü 6.7'dir. Python virtualenv'e kurun:

    pip kurulumu telepot

    Python'da bir Telegram botu ile etkileşime geçmenin en basit yolu şu şekildedir:

    Telepot jetonunu içe aktar = "123456" TelegramBot = telepot.Bot(token) yazdır TelegramBot.getMe()

    BotFather aracılığıyla botu oluştururken alınan token değerini token değişkenine atıyoruz. Sonuç olarak, bu komutları yürüttükten sonra şunu elde ederiz:

    (u"kullanıcı adı": u"PythonPlanetBot", u"ad_adı": u"Python Planet Bot", u"id": 199266571)

    Tebrikler! Bot hakkında bilgi döndüren en basit getMe API isteğini çağırdık: username, id, first_name.

    Botumuzu kişi listemize ekleyelim ve ilk standart komutu /start'ı gönderelim.

    Kodu çalıştıralım:

    TelegramBot.getUpdates() [(u"message": (u"date": 1459927254, u"text": u"/start", u"from": (u"kullanıcı adı": u"adilkhash", u"ad_adı) ": u"Adil", u"id": 31337), u"message_id": 1, u"sohbet": (u"kullanıcı adı": u"adilkhash", u"ad_adı": u"Adil", u" type": u"private", u"id": 7350)), u"update_id": 649179764)]

    Telegram botu ile iletişim süreci HTTPS üzerinden gerçekleşir; JSON veri aktarımı için kullanılır. Yöntem Güncellemeleri al Update türündeki nesnelerin bir listesini/dizisini döndürür. Inside Update bir Mesaj nesnesidir. Botla standart etkileşim için, aslında bota iletilen metni depolayan metin özniteliğini okuduğumuz Mesaj nesnesi ve Telegram botumuzla iletişimi başlatan kullanıcı hakkında bilgi içeren sohbet nesnesiyle ilgileniyoruz. . GetUpdates yöntemi çağrılırken ofset parametresi olarak hizmet veren bir update_id parametresi de vardır. Yani update_id+1, son update_id'den sonra alınan tüm mesajları döndürürken önceki tüm mesajlar silinir.

    TelegramBot.getUpdates(649179764+1) [(u"message": (u"date": 1459928527, u"text": u"merhaba kardeşim", u"from": (u"kullanıcı adı": u"adilkhash", u"ad_adı": u"Adil", u"id": 31337), u"message_id": 13, u"chat": (u"kullanıcı adı": u"adilkhash", u"ad_adı": u"Adil" , u"type": u"private", u"id": 7350)), u"update_id": 649179765)]

    En basit Telegram botunu yazma aşamasında bu aramalar bize yetiyor. Kullanıcılarımıza hizmet verecek bir Django uygulaması yazmaya başlayalım.

    Basit bir Gezegen Python RSS beslemesi ayrıştırma işlevi şöyle görünür:

    # -*- kodlama: utf8 -*- xml.etree'den import cElementTree import request def parse_planetpy_rss(): """http://planetpython.org/rss20.xml'den ilk 10 öğeyi ayrıştırır """ yanıt = request.get ("http://planetpython.org/rss20.xml") parsed_xml = cElementTree.fromstring(response.content) öğeler = parsed_xml.iter() içindeki düğüm için: if node.tag == "item": item = () list(node) içindeki item_node için: if item_node.tag == "title": item["title"] = item_node.text if item_node.tag == "link": item["link"] = item_node.text öğeler. ekle(öğe) iade öğeleri[:10]