现在,机器人已变得司空见惯,并且步步为营,但是如果您在VKontakte社交网络上需要您的机器人,那么这很容易实现。
我们将需要:
- 巨蟒
- VK Api
- 欲望
好吧,只适合初学者
那要写什么呢?是的,即使是笔记本也可以。 我个人建议使用
记事本++ 如何运作?
一切都很简单,在vk api中有一个叫做
longpool的东西,
它的工作方式如下:
长轮询是一项允许您使用“长查询”接收有关新事件的数据的技术。 服务器接收到请求,但不会立即发送响应,而仅在事件发生(例如,新消息到达)或指定的超时时间到时才发送响应。
用俄语,我们向服务器发送一个请求,然后,如果那里发生了某些事情,他反过来戳VKontakte,例如,我们收到一条消息,他运行并告诉我们。 由此我们将跳舞。
技术实施
首先,我们需要证明自己是我们自己,而不是其他任何人。 这非常简单。
import vk_api import requests session = requests.Session() login, password = ' , email ', ' ' vk_session = vk_api.VkApi(login, password) try: vk_session.auth(token_only=True) except vk_api.AuthError as error_msg: print(error_msg) return
请注意,VK的人员建议使用电话号码作为登录名。 否则,您可能会遇到反机器人检查,即要求您输入电话号码中缺少的数字的检查。
如果漫游器将坐在一个组中,则授权看起来会有所不同。
import requests import vk_api vk_session = vk_api.VkApi(token=' ')
-什么是代币?
-您需要在分组设置中获取来自tsiferok和字母的信息。 为此,只需打开“社区管理”部分(如果有公共页面,则打开“管理页面”),选择“使用API”选项卡,然后单击“创建访问密钥”。
现在致电longpool。
from vk_api.longpoll import VkLongPoll, VkEventType longpoll = VkLongPoll(vk_session) vk = vk_session.get_api() for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
邮件可能不仅包含您指定的文本。 例如:
import datetime vk.messages.send( user_id=event.user_id, message=' : ' + str(now.strftime("%H:%M")) )
您还可以附加图片。
attachments = [] from vk_api import VkUpload upload = VkUpload(vk_session) image_url = ' ' image = session.get(image_url, stream=True) photo = upload.photo_messages(photos=image.raw)[0] attachments.append( 'photo{}_{}'.format(photo['owner_id'], photo['id']) ) vk.messages.send( user_id=event.user_id, attachment=','.join(attachments), message=' ' )
您可以想出很多有趣的事情,但是请自己考虑一下,我只是说:链接可以分为几部分。 例如:
image_url = 'http://.com/uploads/' + event.text + '.png'
而且没有人禁止我们接受用户对Wikipedia的回复:
import wikipedia
链接到示例和文档
使用DuckDuckGo API的示例机器人VK API用例(常规)VK API文档
一 ,
二为此,我将告别您。 良好的编码。