"VK" da bağımsız olarak ve özel programlar olmadan "bot" nasıl oluşturulur? Poker botu yazmak

  • 24.04.2019

Botlar son zamanlarda inanılmaz derecede popüler hale geldi. Bu sezonun trendi. Bilişim teknolojilerinin gelişmesiyle, yeni fikir ve programların ortaya çıkmasıyla, canlı iletişimin yerini alması bir meraktan çok bir normdur. Elbette her birimiz en az bir kere bir robotla karşılaştık, telefona bir haber veya bildirim geldiğinde, çağrı merkezini aradık, online oyun oynadık. Birçok sosyal ağ kullanıcısı, VK'da nasıl bot oluşturulacağını bilir. Makalemizde bunun hakkında konuşacağız.

bot nedir?

VK botları, yanlış bilgilerle dolu sayfalardır. Yazar tarafından belirlenen görevleri otomatik modda gerçekleştirirler. Gerçek kullanıcıların saldırıya uğramış sayfaları genellikle sosyal ağlarda bot olur. Botlar binlerce topluluğu istila ediyor. Ana görevleri grubu tanıtmak, yorum bırakmak, hileli beğeniler, gönderiler ve çok daha fazlasını yapmaktır. Bir dizi zorlu görevi yerine getirirler: spam göndermek, abone veya arkadaş sayısını artırmak.

Bir bot, gerçek bir kişi tarafından oluşturulan sahte bir sayfayla kolayca karıştırılabilir. VK'da nasıl bot oluşturulacağını ve gerekli olup olmadığını bilmiyorsanız, asıl görevinin kendisine atanan görevleri otomatik olarak tamamlamak olduğunu unutmayın. Kullanıcının terfi ve geçici kontrol gerektiren geniş bir topluluğa sahip olması kullanışlı olacaktır. Botlar birkaç hafta çalışabilir. Diğer kaderleri donuyor ve engelliyor.

Neden gerekli?

Bir grup için VK'da bot nasıl oluşturulur? Tanınmış bir sosyal ağdaki botlar, çeşitli topluluklar tarafından tanıtılır. Özellikle sayıları günde beş yüzü aşan aboneleri sosyal ağlarda aldatmak risklidir. Grupta robotlar varsa ve bu %30'dan fazlaysa, yönetim tarafından engellenecektir.

Ancak botlar her zaman kötü değildir. Gerçek bir kişiye veya sisteme önemli ölçüde destek sağlayabilirler. Yardımcı botlar, isteklere otomatik olarak yanıt verir ve gerekli bilgileri sağlar. Basit bir örnek, size en son haberler veya hava durumu hakkında bilgi veren botlardır.

yapıcılar

Birçok sosyal ağ kullanıcısı, VK'da nasıl bot oluşturulacağını bilmiyor. Bunu yapmadan önce, ne için olduğuna karar vermelisiniz. Yaratılışı, programlama becerileri ve herhangi bir özel bilgi gerektirmez. Bot oluşturucular (Chatfuel en popülerlerden biri olarak kabul edilir), kullanıcı dostu bir arayüz kullanarak iletişim için bir bot oluşturmanıza izin verir. Ciddi firmalar ve firmalar bu tür yardımcıları kullanır. Bugün talep edilen kurucular şunlardır: Api.ai, Meya, Pandarabots, Manybot. Bu hizmetler, sosyal ağlarda sohbet botları oluşturmak için kullanılır.

sohbet robotu VK

Modern sosyal medya kullanıcısının aktif bir asistana ihtiyacı vardır. Zaman eksikliği, mesajlara cevap veren ve diğer görevleri yerine getiren robotların yaratılması için başlangıç ​​noktası haline geldi. Chatbot, bir kullanıcının iletişim kurduğu bir programdır.

Dört tür sohbet robotu vardır:

  • Asistanlar. Her zaman oradalar, kullanıcının ihtiyaç duyduğu bilgileri buluyor, alarm kuruyor, ofise veya eve yemek siparişi vermek, otel odası rezervasyonu yapmak, bilet satın almak gibi organizasyonel görevleri yerine getiriyorlar.
  • Yapay zeka. En son gelişmeler, sohbet botlarının çok fazla insan zamanı gerektiren görevleri gerçekleştirmesine neden oluyor. Robotlar muhatabın sorularını cevaplayabilir.
  • İş botları. Verimliliği artırmak ve işinizi optimize etmek için tasarlanmıştır. Örneğin, SpyCat 2.0 hizmeti, VK'da alınan yorumları bir otomatik yanıtlayıcı işleviyle kullanıcıya bildirir. İş botları maliyetleri düşürür, iş süreçlerini otomatikleştirir (çalışanlara ve müşterilere mesaj gönderir).
  • Oyun. Bilgisayar tarafından kontrol edilen bir program. Çevrimiçi bir takım oyununda ortakları taklit eder. Bu tür botlar yapay zekaya dayanır ve belirli bir oyunun özelliklerine uyarlanır.

VK'da sohbet botu nasıl oluşturulur? Bunu yapmak oldukça kolaydır. İşe başlamadan önce bazı kriterleri karşılamanız gerekir: İnternete sürekli erişim ve çok fazla boş zaman. Ücretsiz bir sohbet robotu indirin, başlatın ve bir hesap ekleyin. Ardından, VK sayfanızın kullanıcı adını ve şifresini girin. Ardından, bir talimat açılacak, onu okumalı ve "Mesajlar" sekmesine gitmelisiniz. Hesabınızın duvarına "Bot, merhaba!" yazın. Otuz saniye içinde cevap vermeli. "Hesap", "Komutlar" programının sekmelerinde botun işlevlerini yapılandırabilir ve değiştirebilirsiniz.

Kendiniz bir VK botu nasıl oluşturacağınızı bilmiyor musunuz? Ücretsiz inşaatçılar bu konuda yardımcı olabilir. Botu daha karmaşık hale getirmeyi planlıyorsanız, herhangi bir programlama dilini kullanarak manuel olarak yazmak daha iyidir. Tasarımcı için işleri kolaylaştıran araçlar var. Örneğin, api.ai, bilgisayarın bu komutları anlaması için kullanıcı isteklerini dönüştürebilir. Bot'a sorarsanız: "Yarın Rostov bölgesinde hava nasıl olacak?" - "hava durumu, yarın, Rostov bölgesi" anahtar kelimelerindeki soruyu anlayacak ve sonucu verecektir.

VK'da programsız nasıl bot oluşturulacağı sorulduğunda, uzmanlar cevap verir: her şeyden önce bir programlama dili seçin. Bu, bunun farkında olan kullanıcılar için geçerlidir. Çoğu zaman Python, Javascript kullanırlar. Ardından botla çalışmak için platform seçilir: herhangi bir sosyal ağ, mesaj gönderme ve alma programı ve haberci (API) ile etkileşim için bir kitaplık. Programın sosyal ağ ile iletişim kurmasını sağlar. Platform ve programlama dili seçildiğinde, basit bir bot oluşturabilirsiniz ve diğer tüm eylemler öncekine bağlıdır. Bot oluşturulduktan sonra test etmeyi deneyin. Bu, eksiklikleri ve hataları ortadan kaldırmaya, iyileştirmeye yardımcı olur.

Nasıl devam edilir?

Android, elektronik cihazlar için tasarlanmış bir işletim sistemidir. Linux çekirdeğini temel alır ve Google kitaplıkları aracılığıyla cihaz tarafından kontrol edilen uygulamalar oluşturmanıza olanak tanır. VK botu nasıl oluşturulur? Android, bir akıllı telefondan bot oluşturmaya yönelik programları destekler. Programlama dili bilgisi, yine kendi başınıza yapmanıza yardımcı olacaktır. Bununla ilgili zorluk çekiyorsanız, otomatik bir mekanizma veya hizmetler kullanın. Örneğin, Abot kişisel bir sanal asistan oluşturmanıza yardımcı olacaktır. Müşterilerden gelen mesajları ve çeşitli soruları yanıtlıyor. Bu, bir akıllı telefon aracılığıyla bir işletmeyi yürütmek veya kontrol etmek için kullanışlı bir şeydir.

Son zamanlarda, Telegram herkesin ağzında. Bu uygulamanın pazarlama departmanına kredi vermek için, yutturmaca harikaydı. Telegram'ın ana "hilelerinden" biri, sözde güvenliğidir - Pavel Durov'a göre, kullanıcılar arasındaki tüm yazışmalar şifrelenir. Üstelik dünyadaki hiçbir özel servisin mesajlarınıza erişimi olmayacak. Ancak bu makale bununla ilgili değil. Bugün Telegram'daki eşit derecede harika bir özellik olan botlardan bahsetmek istiyorum. Ağın halihazırda çeşitli Telegram botları (örneğin github bot) hakkında bilgilerle dolu olmasına ek olarak, haberci API'sini geliştiriciler için açtı ve artık herkes blackjack ve hediyelerle kendi botunu oluşturabilir.

Bu yazımda Python ve Django framework kullanarak online bot yazma örneği vereceğim. Yani, uzak bir ana bilgisayarda çalışacak ve kullanıcılardan komutlar alacak tam teşekküllü bir web uygulaması "yazacağız". 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 çerçevesini kullanarak bir web uygulaması geliştireceğiz.

Telegram botu nasıl oluşturulur?

İlk olarak, gelecekteki botumuzu Telegram'a kaydetmemiz gerekiyor. Bu şu şekilde yapılır:

  • Telefonunuza veya bilgisayarınıza Telegram uygulamasını yüklemeniz gerekir. Uygulamayı indirebilirsiniz
  • Kişi listemize adı olan bir bot ekleyin BotBaba
  • Bir düğmeye basarak botla "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. / yeni robot ve talimatları izleyin. Bunu not et bir bot için kullanıcı adı her zaman sonunda bot kelimesini içermelidir... Örneğin, DjangoBot veya Django_bot.

  • Botumuz için PythonPlanetBot adını seçtim, çünkü ana işlevi Python Planet sitesinin RSS beslemesini ayrıştırmak ve kullanıcıya en son gönderilerle ilgili bilgileri görüntülemek :)

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

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

Hangi sözde tarafından takip edilir. botumuzu manipüle edeceğimiz jeton. BotFather, bir telgraf botu oluşturma işlevine ek olarak bir dizi başka özelliğe de sahiptir:

  • Bot için bir açıklama atayın
  • Bir avatar ayarla
  • Jeton değiştir

Kodlamaya Başlarken

Daha önce de belirttiğim gibi, yazacağız. Django web uygulaması... Ancak bunun isteğe bağlı olduğunu belirtmekte fayda var. Ayrıca normal bir Python betiği ile de idare edebilirsiniz, ancak bu durumda bot kullanıcılarından gelen yeni istekler için Telegram'ı periyodik olarak sorgulamak gerekli olacaktır (yöntemi kullanarak getUpdates) ve en son verileri tekrar etmeden almak için ofseti artırın. Telegram'da botunuz için komutları/mesajları almak için birbirini dışlayan iki yöntem vardır.

  • Bir yöntem API çağrısı kullanma getUpdates
  • Web kancasını yükleme

Webhook'u yüklemek, biri bota her mesaj göndermeye başladığında bir POST isteğinin geleceği bota özel bir URL iletmektir. Bot ve kullanıcısı arasındaki etkileşim için kullanacağımız bu seçenek. URL'yi ayarlamak için API yöntemini kullanmanız gerekir. setWeb kancası... URL'nin https ile başlaması gerektiğini, yani geçerli bir sertifikaya sahip güvenli bir SSL bağlantısına sahip olması gerektiğini unutmayın. Telegram, kendinden imzalı bir sertifikanın kullanılmasına izin verir, ancak bunun için yöntemde gereklidir. setWeb kancası ayrıca ortak anahtarı PEM biçiminde (ASCII base64) aktarın. Alternatif olarak, Let's Encrypt'ten de alabilirsiniz.

Hakkında daha ayrıntılı getUpdates ve setWeb kancası ve buna göre okunabilir.

Telegram ile çalışmak için python kitaplığına geri dönelim - telepot... Şu anda, en son sürümü 6.7'dir. Python virtualenv sanal ortamına kurun:

Pip kurulum telepot

Python'da bir Telegram botuyla etkileşim kurmanın en basit yolu şudur:

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

Token değişkenine BotFather üzerinden bot oluştururken alınan tokenin değerini atarız. Sonuç olarak, bu komutları yürüttükten sonra şunu elde ederiz:

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

Tebrikler! Bot hakkında bilgi döndüren en basit API çağrısını getMe olarak adlandırdık: username, id, first_name.

Botumuzu kişi listemize ekleyip ilk standart komutu gönderelim/başlatalım

Kodu yürütüyoruz:

TelegramBot.getUpdates () [(u "mesaj": (u "tarih": 1459927254, u "metin": u "/ start", u "from": (u "kullanıcı adı": u "adilkhash", u "first_name" ": u" Adil ", u" id ": 31337), u" message_id ": 1, u" sohbet ": (u" kullanıcı adı ": u" adilkhash ", u" first_name ": u" Adil ", u" ": u" özel ", u" id ": 7350) yazın), u" update_id ": 649179764)]

Bir telgraf botu ile iletişim süreci HTTPS üzerinden gerçekleşir; Verileri aktarmak için JSON kullanılır. Yöntem getUpdates Update türünde bir nesne listesi/dizisi döndürür. Güncelleme İçinde Mesaj nesnesidir. Bir botla standart etkileşim için, aslında, bota iletilen metni saklayan text niteliğini okuduğumuz Message nesnesi ve Telegramımızla iletişimi başlatan kullanıcı hakkında bilgileri içeren sohbet nesnesiyle ilgileniyoruz. bot. Ayrıca getUpdates yöntemi çağrıldığında offset parametresi olarak görev yapan update_id parametresi de vardır. Yani update_id + 1, önceki tüm mesajlar silinirken, son update_id'den sonra alınan tüm mesajları döndürür.

TelegramBot.getUpdates (649179764 + 1) [(u "mesaj": (u "tarih": 1459928527, u "metin": u "merhaba kardeşim", u "dan": (u "kullanıcı adı": u "adilkhash", u "first_name": u "Adil", u "id": 31337), u "message_id": 13, u "chat": (u "kullanıcı adı": u "adilkhash", u "ad_name": 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 vermek için bir Django uygulaması yazmaya başlayalım.

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

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

Ne yazık ki, şu anda hızlı bir şekilde bir sohbet robotu oluşturmak için iyi bir Python2 kitaplığı yok. Aşağıda VK API kullanarak VK için ilkel bir sohbet botu yazmanın ne kadar kolay olduğunu göstereceğim.


Makale, Python'da bot yazmanın zor bir şey olmadığını göstermek için yeni başlayanlar için yazılmıştır.

yetki

vk_api kitaplığına ihtiyacımız var. VK'da iki şekilde oturum açabilirsiniz:
- Bir kullanıcı olarak
- topluluk olarak


İlk durumda, kullanıcı adınızı ve şifrenizi girmeniz gerekecektir. İkinci durumda, grupta "Topluluk Mesajları"nı etkinleştirmeniz ve bir API erişim anahtarı oluşturmanız gerekir:





alma zamanı import vk_api vk = vk_api.VkApi (login = "login", password = "password") # vk_api.VkApi (token = "a02d ... e83fd") # Topluluk olarak oturum açın vk.auth ()

Mesaj gönderme

Şimdi seçilen kişiye mesaj gönderen kısa bir fonksiyon yazalım.


not Topluluk yalnızca daha önce gönderilmiş kullanıcılara mesaj gönderebilir.


def write_msg (user_id, s): vk.method ("messages.send", ("user_id": user_id, "message": s))

vk.method'da herhangi bir metodu çağırabiliriz. VK API'si ve parametreleri sözlük olarak iletin.


Bu durumda metodu çağırıyoruz. mesajlar.send ve kullanıcı kimliğini ve mesaj metnini parametre olarak iletin.

mesaj alma

İyi! Mesajları nasıl göndereceğimizi öğrendik, onları nasıl alacağımızı öğrenmek kaldı. Bunun için bir metoda ihtiyacımız var. mesajlar.get.


Dikkat edilmesi gereken birkaç parametre:


1) out - bu parametre 1 ise, sunucu giden mesajları döndürür.
2) sayı - alınması gereken mesaj sayısı.
3) time_offset - mesajın gönderildiği andan şu anki ana kadar geçen saniye cinsinden maksimum süre.
4) last_message_id - en son döndürülmesi gerekenden önce alınan mesajın tanımlayıcısı (sonradan en fazla sayıda mesaj alınmamış olması şartıyla)


değerler = ("out": 0, "count": 100, "time_offset": 60) vk.method ("messages.get", değerler)

Bizim durumumuzda, bu yöntem, tabii ki 100'den az ve daha fazlaysa, son 100 saniye içinde alınan tüm mesajları son 60 saniye içinde döndürür.


Sonuç olarak, bir öğe listesi alıyoruz:


(u "say": 3441, u "öğeler": [(u "gövde": u "\ u041f \ u0438 \ u0448 \ u0435 \ u043c \ u0431 \ u043e \ u0442 \ u0430 \ u0434 \ u043b \ u044f \ u043a ! ", u" tarih ": 1491934484, u" id ": 7387, u" out ": 0, u" read_state ": 0, u" title ": u" ... ", u" user_id ": 23107592) , (u "vücut": u "\ u041f \ u0440 \ u0438 \ u0432 \ u0435 \ u0442 \ u0425 \ u0430 \ u0431 \ u0440!", u "tarih": 1491934479, u "id": 7386, u "out" : 0, u "read_state": 0, u "title": u "...", u "user_id": 23107592)])

Basit bir ifadeyle, öğeler iletişim kutusunda vurgulanabilecek öğelerdir.



Son akor, her mesaja "Merhaba, Habr!" Diye cevap vereceğimiz sonsuz bir döngü yaparız.


while True: yanıt = vk.method ("messages.get", değerler) ise yanıt ["items"]: değerler ["last_message_id"] = yanıttaki öğe için yanıt ["items"] ["id"] [ "items "]: write_msg (öğe, u" Merhaba, Habr! ") time.sleep (1)

Chatbot hazır.


not last_message_id parametresini hatırlıyoruz, böylece bir dahaki sefere sadece yeni mesajları işleyeceğiz.


Kodu tamamla

# - * - kodlama: utf-8 - * - içe aktarma zamanı vk_api vk = vk_api.VkApi (login = "login", password = "password") # vk_api.VkApi (token = "a02d ... e83fd") # Topluluk olarak giriş yapın vk.auth () değerleri = ("out": 0, "count": 100, "time_offset": 60) def write_msg (user_id, s): vk.method ("messages.send", ( "user_id ": user_id," mesaj ": s)) while True: yanıt = vk.method ("mess.get ", değerler) ise yanıt [" öğeler "]: değerler [" last_message_id "] = yanıt [" öğeler "] [ "id"] yanıttaki öğe için ["items"]: write_msg (öğe, u "Merhaba, Habr!") time.sleep (1)


17 satır kod çıktı. İyi şanlar!


UPD 09/17/18:
Ne yazık ki VK API'nin yeni sürümünde (5.80) "messages.get" yöntemi kaldırılmış ve bu makale alaka düzeyini kaybetmiştir. Şimdi bot oluşturmak için longpoll sistemini kullanın. Python için vk_api modülünde bir örnek bulabilirsiniz.

Telegramların aktif kullanıcılarının, özellikle ticari sayfaların sahiplerinin doğal bir sorusu var, Telegramlar için nasıl bot yapılır? Bunun için hangi beceriler gereklidir?

Botlar hakkında biraz

Botlar, başta “mekanik” ve benzeri manipülasyonlar olmak üzere belirli eylemleri gerçekleştirmek üzere programlanmış özel robotlardır. Telegram sosyal ağı için, bir botu şunlar için programlamak önemlidir: belirli verileri aramak ve filtrelemek, herhangi bir çevredeki kullanıcılar için postaları düzenlemek, birkaç dil arasında bilgi çevirmek, yalnızca ilginç ve alakalı haber beslemeleri oluşturmak. Botlar, oyunlarda yapay zeka olarak bile hareket edebilir. Potansiyel robot fonksiyonlarının listesi çok yönlüdür.
Bazı bot türleri gerçek, gerçek iletişimi taklit etme yeteneğine sahiptir. Bu, bu tür robotların son derece zeki olduğu anlamına gelmiyor ancak geliştirmeler adım adım gerçekleştiriliyor. Belki de yakın gelecekte bir bot ile gerçek bir insanı ayırt etmek mümkün olmayacak.

Telegram için bot oluşturma

Telegram için bir bot yazmadan önce, kendinize net bir şekilde bir hedef belirlemeniz önemlidir. İlk aşama, programın karşı karşıya olduğu ana görevlerin bir planını hazırlamaktan oluşur. Belki de bu mesaj göndermek, döviz kurlarının günlük olarak güncellenmesi ve diğerleri. Bu temelde, bir kod üretilecektir.



Robot yazmak her zaman web programlama dilleri bilgisi gerektirmez; neredeyse bu bilgi olmadan da yapabilirsiniz. İkinci seçeneğin tek dezavantajı, programın niteliksel olarak optimize edilememesi ve bazı pervazların ortaya çıkabilmesidir. Bir bot oluşturmak için bir robota ihtiyacınız var - @BotFather. Başlangıçta, botu kişi listenize eklemeniz ve başlatmasını başlatmanız gerekir.

Bot aşamalar halinde yazılmıştır:

  1. / newbot komutunun girilmesi - şimdi yeni bir bot oluşturuluyor. Sistemin robotu BotFather, sizden bot için bir ad girmenizi isteyecek, benzersiz olmalı ve 3 harfle bitmelidir - "bot";
  2. İsteğe bağlı olarak, program için bir avatar ve eylemlerinin bir açıklaması veya yazar hakkında bilgi eklenir;
  3. Bu noktada BotFather kendi API jetonunuzu gönderir. Gelecekte, kod gerekli olacak, bu yüzden onu kaybetmemek için bir yere kaydetmeniz gerekiyor, çünkü onu neredeyse hiç hatırlamıyorsunuz;
  4. Şimdi bot oluşturuldu, ancak işlevselliği 0'a eşit. Programa en azından bazı eylemleri öğretmek için programlamayı kullanmak daha iyidir, ancak Paquebot da uygundur - sosyal ağlarda robot oluşturmak için bir kaynak;
  5. Ardından, başka bir bot - @Chatfuel eklemeniz ve etkinleştirmeniz gerekir;
  6. Başlamak için / addbot'u girmeniz ve boşluktan sonra önceden dikkatlice kaydedilmiş jetonu eklemeniz gerekir;
  7. Artık bot hizmete zaten kaydedildi ve onu hemen oradan kullanabilirsiniz. Program arayüzü sezgiseldir ve kontrol komutları, amaçlarını anlamak için başlangıç ​​seviyesinde İngilizce gerektirir. Çok sayıda işlev vardır, bu nedenle listelemenin bir anlamı yoktur.
Paquebot servislerini kullanarak artık kendi botunuzun tüm fonksiyonlarını yönetmeniz mümkün, sadece basit komutları girin. Örneğin, bot için kanal yönetici haklarını ayarlayabilirsiniz ve bot bağımsız olarak haber ekler ve beslemeyi günceller. Ek olarak, güncellemeyi burada paralel sosyal ağlarda yapılandırmak da mümkündür.

Bu yazıda, ekrandaki nesneler için görsel aramaya dayalı basit bir botun nasıl oluşturulacağını göstereceğim. Bu yöntemin avantajı, çeşitli koruma sistemleri için botlara karşı "görünmezlik" olmasıdır. Bir bot yazmak için, botları geliştirmek için doğal olarak özel bir ortam kullanacağız. Botlar, monoton rutin işlemler yaparken size zaman kazandırmak için oluşturulmuşsa, bot yazarken size zaman kazandırmak için NOMAD yaratılmıştır. Özel olmayan programlama ortamlarında veya çok özel olmayan botlar yazmakla karşılaştırıldığında, NOMAD geliştirme onlarca, hatta yüzlerce kat daha hızlı olabilir. (çünkü başlangıç ​​olarak, halihazırda NOMAD'de yerleşik olarak bulunan nesne algılama araçları geliştirmeniz gerekiyor). NOMAD dağıtım kitini bot yüklü olarak bu makaleden bu bağlantıdan indirebilirsiniz (dikkat! Dağıtım kitindeki program ayarları, varsayılan klasöre yüklemek için tasarlanmıştır, başka bir konuma yüklerseniz yolları değiştirin oyuncu ile üsse ve yapıcıya!)

yönetici robotu
Tarih: 22.07.2015

Çoğunu yönetmek, birkaçını yönetmekle aynıdır. 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. Tabii ki, bu bir çevrimiçi oyun değil, ama inanın bana, çevrimiçi bir oyun için bir bot oluşturmak da farklı değil. (dikkat, örnek Windows 8 ve Windows 7'de çalışır ve hesap makinesi metinde 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ışmayacaktır)

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

  1. Kendinize bir görev formüle edin. Botumuz hangi hedeflere ulaşmalı?
  2. Bunun için hangi işlemleri yapmalıdır?
  3. Göreve bağlı olarak, 1. paragrafta açıklanan hedeflere ulaşmak için hangi nesneleri görmesi gerektiğini ve nasıl ve hangi olaylara tepki vereceğini belirleyin.
  4. Algoritma oluşturma.
  5. Programlama.

Botumuzun görevi, hesap makinesine durmadan 59 ve 3 sayılarını eklemek olacaktır.

Hedefimize ulaşmak için, programımızın hesap makinesinin 5 ve 9 düğmelerine basmasına 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 fare ile dürtmemiz gerekecek. Bir sonraki iterasyona başlamadan önce hesaplamaları 0'a sıfırlamak için sonuç alanındaki 59 sayısını ve 0 sayısını ve ayrıca CE düğmesini de analiz edeceğiz.

Algoritmamız: Sonsuz bir döngüde, önce 5 numaralı düğmeyi, ardından 9 numaralı düğmeyi aratıp tıklıyoruz. Başarılı olursa, 3 saniye duraklıyoruz (sonucun tadını çıkarmak için zamanımız olsun). Daha sonra elimizde 59 rakamının görüntüsü var mı diye kontrol ediyoruz, varsa hesap makinesinin + ve 3 butonlarını bulup tıklıyoruz, eğer bu işlemler de başarılı ise butonunun = butonunu bulup tıklıyoruz. hesap makinesi. Sonra 5 saniye uyuyoruz. Daha sonra sonuç alanında resim 0 olup olmadığını kontrol ediyoruz, daha sonra önceki hesaplamaların sonuçlarını sıfırlamak için CE düğmesine basmak gerekiyor. Daha sonra iterasyon tekrarlanır. Esc düğmesine basmak programı durdurur.

Aldığımız programın kodunu gösterelim:

Delphi / Pascal

Prosedür StartOnClick (); start while (getasynckeystate ($ 1B) = 0) do // döngü Esc ++ tuşuna basılana kadar devam eder beş.MouseClick ("l") ve dokuz ise start.MouseClick ("l") sonra // beş ve 9 ise başarıyla basıldı ve ardından uykuya geçildi (3000); // ellinine ise 3 saniye uyu.FindPicture sonra // 59'u bulursak, onlara 3 ekleyin: plus.MouseClick ("l") ve üç.MouseClick ("l") sonra // başarabilirsek artı 3'e basın, ardından eşit'e tıklayın.MouseClick ("l"); son; son; uyku (5000); // sıfır değilse 5 saniye uyku.FindPicture sonra // ekranda sıfır yoksa CE.MouseClick ("l"); // ardından CE Application.ProcessMessages'a basın; // zorla işler // işlem sırasında pencereye gelen mesajlar, örneğin // Esc tuşuna basılmasıyla ilgili bir mesaj. Bunu çağırmazsanız, // program "donabilir", Esc tuşuna basmaya kötü tepki verebilir, vb. son; // döngü Esc tuşuna basılana kadar devam eder - ShowMessage ("Program durdurulur!"); son;

Prosedür StartOnClick ();

başlamak

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

başlamak

eğer beş. MouseClick ("l") ve dokuz. MouseClick ("l") ardından // beş ve 9'a başarıyla bastıysanız

başlamak

uyku (3000); // 3 saniye uyu

elli dokuz ise. Resim bul o zaman // 59'u bulursak, onlara 3 ekleyin:

başlamak

eğer artı. MouseClick ("l") ve üç. MouseClick ("l") ardından // artı 3'e basıldığı ortaya çıktıysa, eşit'e basın

eşit. MouseClick ("l");

son;

son;

uyku (5000); // 5 saniye uyu

sıfır değilse. Resim bul o zaman // puan tablosunda sıfır yoksa

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

Başvuru. İşlem Mesajları; // zorla işlemler

// işlem sırasında pencereye gelen mesajlar, örneğin

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

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

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

Mesajı göster ( "Program durdu!") ;

son;

Burada biraz ilerledik, kodu hemen yazdık, çünkü NOMAD'da öncelikle aradığımız görüntü şablonlarını oluşturmanız gerekiyor. Yani koda bakarsanız şu girdileri görebilirsiniz: beş, dokuz, elli dokuz, artı, üç, eşittir, sıfır, CE - nedir? ve bunlar aslında bu şablonlardır, NOMAD'da nesnelerde olduğu gibi koddan onlarla çalışabilirsiniz, yani. nesnenin adını koda yazın ve yöntemini çağırın, ö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 detaylı olarak incelemek için iletişime geçmenizi tavsiye ederim. Şimdi de eksik şablonları nasıl oluşturabileceğimizi kısaca anlatacağım:

İlk önce bir veritabanı oluşturacağız bunun için Launcher'da EKLE butonuna basın, açılan pencerede veritabanının adını ilk alana (örneğin Hesap Makinesi) ve ikinci alana da veritabanının adını yazıyoruz. programladığımız her şeyi saklamak istediğimiz dizini belirtin. Onlar. programımızın asıl kaynağı veya başka bir deyişle veritabanı. Ardından Kaydet düğmesine basın ve listede bir giriş görünmelidir. Seçin ve Yapıcı düğmesine basın.

İkinci olarak, bu ekran görüntüsü hattını, bizim durumumuzda pencereyi fotoğraflamaktan sorumlu nesne olan hesap makinesi penceresini oluşturmanız ve yapılandırmanız gerekir. Bu yüzden programı Constructor modunda açıyoruz, sağda açılan pencerede aşağıdaki resmi görmeliyiz:

Resimde mavi ile vurgulanan öğeye sağ tıklayın ve "ekran görüntüsü ardışık düzeni ekle" menü öğesini seçin. Görünen pencerede adını belirtin - "Calc". Ve Giriş düğmesine basın. Bundan sonra, ScreenShotPipe bölümündeki nesneler ağacında bu 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 formun bir penceresi görünecektir (özellikler farklı bir sırayla gidebilir):

Sizinkinde olması gerektiği gibi zaten doldurdum. Aslında, her şey zaten belirtildi, sadece WindName alanına Calculator kelimesini yazmanız gerekiyor. Tüm boru hattı hazır ve size bu boru hattını neden yaptığımızı anlatacağım şablonlar oluşturmaya başlayabiliriz.

Üçüncüsü, hesap makinesini çalıştıracağız ve bir anlık görüntü alacağız; anlık görüntü almak için Constructor'ın sol üst köşesindeki ScreenShot düğmesine basın. Bundan sonra, ekran görüntüsü içeren bir TV penceremiz olacak. Şimdi Kes düğmesine basıp TV penceresinde hesap makinemizi seçmemiz gerekiyor, bu işlemlerin sonucu hesap makinesi görüntüsünün bulunduğu TV penceresi olmalıdır.

Kenarlıklar düğmesini tıklayın ( Not. Bu yazı yazıldığı için programda FixBorders modu çıktı (ay ile siyah 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 şablonlar oluşturmaya başlayın. Bunun nasıl yapıldığını "+" düğmesi için şablon örneğini kullanarak açıklayayım - görüntüdeki görüntünün başka yerlerde tekrarlanmayan en karakteristik bölümünü seçmemiz gerekiyor. Aslında, + sembolünün kendisini seçiyoruz, Seç düğmesine tıklıyoruz ve bu işareti bir karede seçiyoruz:

Noktalı karenin içine sağ tıklıyoruz ve bir pencere beliriyor:

adını "artı" yazdığımız alana (bu nesne bizim kodumuzda yazıldığı için) ve Input'a basın. Nesne ağacının Şablonlar bölümünde aynı isimde bir nesnemiz var. Üzerine tıklayın ve sol tarafta bize zaten tanıdık gelen bir pencere görünecektir:

Burada ConnectedScreen özelliğini değiştirmemiz gerekiyor, başlangıçta oluşturduğumuz ekran görüntülerinin ardışık düzenini seçmeliyiz, çünkü varsayılan olarak, burada yalnızca hesap makinemizin değil, tüm masaüstünün fotoğraflarını çeken global ardışık düzen seçilir. Bu, şablonun minimal ayarını tamamlar ve sanırım bu bizim için yeterli olacaktır. Bununla ilgili daha fazla bilgiyi belgelerde bulabilirsiniz. Şablonlara eklememiz gereken diğer tüm nesnelerle aynı şeyi yapmanız yeterlidir. Tüm şablonları ekledikten sonra nesne ağacı şöyle görünmelidir:

Giriş durumu da dahil olmak üzere isimlerin tam olarak resimde gördüğünüze karşılık gelmesi çok önemlidir. Örnekte, şablon beş ve dokuz farklı bir şekilde, ColMap modunda, bunun nasıl yapıldığına dair ayrıntılar için belgelere başvurmanızı öneririm. Bunun program kodunun nasıl çalıştığına fazla bir etkisi olmayacaktır ve tüm şablonları + düğmesi şablonuyla aynı şekilde yapabilirsiniz. Veya hiçbir şey yapmadan hazır bir dağıtım kitini bir örnekle indirebilirsiniz.

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

Hepsi şablonlara göre.

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

Çift tıklamanız gereken bir form ile bir pencere açılacak ve açılan pencereden her iki form alanına 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:

Değer sütununda OnClick olayına çift tıklayın ve değerdeki Değer otomatik olarak yukarıdaki resimdeki değerle doldurulur. Ve orta pencerede bir metin düzenleyici belirir:

Bu metni yazının başında verdiğim kodla değiştirmeliyiz. Artık her şey program hazır. Başlamak için, iki disket görüntüsü olan düğmeye basarak programı kaydetmeniz, ardından çapraz tornavida ve anahtarın resmi olan düğmeye basarak programı derlemeniz ve ardından Başlat düğmesine basmanız veya çalıştırmanız gerekir. başlatıcıdan. Yapıcıdan program her zaman hata ayıklama modunda başlatılır, bu nedenle hata ayıklama mesajları gösterilecektir. Her şeyi doğru yaptıysak, oluşturduğumuz düğmenin bulunduğu pencereyi görmeliyiz:

Hesap makinesini başlatıyoruz, masaüstünde görünmesini sağlıyoruz ve başlat düğmesine basıyoruz. Canınız sıkıldığında Esc tuşuna basın ve programın bittiğine dair bir mesaj bekleyin.

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

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