您在说什么机器人?
这是我自己使用Python编写的机器人。如果您将机器人写为“ s”,则机器人将截取屏幕截图并将其发送回给您。如果漫游器写“问题xxxxxxxxxxxxxxxx?”,其中您的问题是xxxxxxxxxxxxxxxx,则将在整个计算机屏幕上打开一个窗口,其中将写入您的问题和答案表格,此人将有机会为您的问题写下答案并单击“提交”。 ,之后该漫游器会将您的回答返回给您。您还可以向机器人写入任何内容,然后在计算机上打开一个对话框,其中带有“确定”按钮和您编写的内容。我如何使用这个机器人
我在离开商店之前就启动了它,然后我进入了机器人的电报中并截图了。于是我的弟弟坐在计算机旁,开始在那里工作。然后我给机器人写了以下消息:“问题,你为什么坐在电脑前?”,看起来像这样:
恩,我们在那里与他通信,到家后我们同意他不再是那样了:)我怎么写的?
我认识Python很久了,而且我很了解,因此编写这样的机器人并不难。对于或多或少的程序员。我使用了库:Telebot,PyQt5,sys,tkinter,pyautogui,仅此而已,对我来说就足够了。这是程序的源代码:import telebot as TL
from PyQt5.QtWidgets import QMessageBox
import PyQt5
import sys
from tkinter import *
from pyautogui import screenshot
token = input(" : ")
def vopros(mess,msg):
def ok_btn(entr,msg,root):
msg = msg
root = root
msg(": "+entr.get())
root.destroy()
root = Tk()
root.geometry("200x200")
root.attributes("-fullscreen",True)
root.lift()
lab = Label(root,text=mess)
entr = Entry(root)
btn_ok = Button(text="",command=lambda: ok_btn(entr,msg,root))
lab.pack()
entr.pack()
btn_ok.pack()
root.mainloop()
def msg_mean(mess):
newApp = PyQt5.QtWidgets.QApplication(sys.argv)
msg = QMessageBox()
msg.setWindowTitle("")
msg.setText(mess)
msg.setIcon(QMessageBox.Critical)
x = msg.exec_()
bot = TL.TeleBot(token)
@bot.message_handler(commands=['start'])# bot
def start_message(message):
bot.send_message(message.chat.id, ', :)')
@bot.message_handler(content_types=['text'])# bot
def send_text(message):
def msg(message_text):
bot.send_message(message.chat.id, str(message_text))
def snd_doc(name_doc):
bot.send_document(message.chat.id, open(name_doc,"rb"))
if message.text[:6] == "":
vopros(message.text,msg)
else:
if message.text == "s":
screen = screenshot('s.jpg')
snd_doc("s.jpg")
else:
msg_mean(message.text)
while True:
try:
bot.polling()
except(BaseException):
pass
如您所见,该机器人并不复杂,但存在一些错误:- 可以通过任务管理器轻松禁用它,
- 如果您发送大量消息,那么它就过得很快。
有人可以连接到您的机器人(如果他知道您的机器人的名字),并观察计算机。幸运的是,我知道如何修复它,如果您喜欢这样的机器人,也可以修复它。机器人会发生什么?
首先,我初始化该机器人将使用的所有库。import telebot as TL
from PyQt5.QtWidgets import QMessageBox
import PyQt5
import sys
from tkinter import *
from pyautogui import screenshot
接下来,我创建一个问题函数:def vopros(mess,msg):
def ok_btn(entr,msg,root):
msg = msg
root = root
msg(": "+entr.get())
root.destroy()
root = Tk()
root.geometry("200x200")
root.attributes("-fullscreen",True)
root.lift()
lab = Label(root,text=mess)
entr = Entry(root)
btn_ok = Button(text="",command=lambda: ok_btn(entr,msg,root))
lab.pack()
entr.pack()
btn_ok.pack()
root.mainloop()
接下来,我创建一个函数,该函数将在PC上向用户显示一条消息:def msg_mean(mess):
newApp = PyQt5.QtWidgets.QApplication(sys.argv)
msg = QMessageBox()
msg.setWindowTitle("")
msg.setText(mess)
msg.setIcon(QMessageBox.Critical)
x = msg.exec_()
然后,您可以进行电报和机器人本身,创建一个机器人:bot = TL.TeleBot(token)
然后创建第一个函数,该函数将响应电报中的“ / start”命令:def start_message(message):
bot.send_message(message.chat.id, ', :)')
然后,我们还使用电报,现在我们创建了一个函数,该函数将接收来自用户的消息:@bot.message_handler(content_types=['text'])# bot
def send_text(message):
然后在其中创建两个函数,分别是msg和snd_doc。 def msg(message_text):
bot.send_message(message.chat.id, str(message_text))
def snd_doc(name_doc):
bot.send_document(message.chat.id, open(name_doc,"rb"))
然后,我们收到机器人用户的消息,并检查他想要什么: if message.text[:6] == "":
vopros(message.text,msg)
else:
if message.text == "s":
screen = screenshot('s.jpg')
snd_doc("s.jpg")
else:
msg_mean(message.text)
仍然只有启动机器人:while True:
try:
bot.polling()
except(BaseException):
pass
就是这样,它就是这样工作的。如何使用这样的机器人?
看起来似乎很复杂,但是如果您按照说明进行所有操作,则没有什么复杂的。指令
在名为@BotFather的机器人的电报中找到如下所示:
接下来,给他写一个创建新bot的命令,该命令看起来像这样:/ newbot
接下来,随便调用您的bot,但需要单独命名它,即这样世界上就没有这样的机器人了,例如:BotStepana3215。
接下来,您需要输入您的机器人的名称,并确保在“ bot”前面加上一个前缀,例如,我将这样称呼它:BotStepana3215_bot:
@BotFather会给您机器人的令牌,它看起来像这样:
无法将此令牌授予任何其他人,因为它可以更换机器人。而且仍然需要复制令牌,将其保存在文本文件中的某个位置(从那里复制更方便),运行程序并在其中输入令牌。现在,您可以写入刚创建的机器人(可以在姓氏搜索电报中找到,在我的情况下为@ BotStepana3215_bot),我从其功能中列出的所有内容都将为您服务。哪里有这样的机器人?
这里我在github上有.exe和.py,但是.exe仅适用于Windows10。请享受该程序并撰写评论。祝好运