π€ ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π±ΠΎΡΠ° ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅ Π½Π° Python: ΠΏΡΠΎΡΡΠΎΠΉ Π³Π°ΠΉΠ΄
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π±ΠΎΡΠ° VK Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python?
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² Π±ΠΎΡΠ° VK Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ:
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° VK API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ VK Bot API
- Π’ΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΎΡΠ° VK
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π±ΠΎΡΠ° VK:
import vk_api
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ VkApi
vk_session = vk_api.VkApi(token='YOUR_TOKEN_HERE')
vk = vk_session.get_api()
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
keyboard = VkKeyboard()
# ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ "ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ" Ρ ΡΠ²Π΅ΡΠΎΠΌ "ΠΠ΅Π»Π΅Π½ΡΠΉ"
keyboard.add_button('ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ', color=VkKeyboardColor.POSITIVE)
# ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ
keyboard.add_line()
# ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ "ΠΡΠΌΠ΅Π½Π°" Ρ ΡΠ²Π΅ΡΠΎΠΌ "ΠΠ΅Π»ΡΠΉ"
keyboard.add_button('ΠΡΠΌΠ΅Π½Π°', color=VkKeyboardColor.DEFAULT)
# ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ
vk.messages.send(
user_id=USER_ID,
message='ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ',
keyboard=keyboard.get_keyboard()
)
ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ 'YOUR_TOKEN_HERE'
Π½Π° Π²Π°Ρ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° Π±ΠΎΡΠ° VK ΠΈ USER_ID
Π½Π° ID ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΡΡΡΠΎΠΊ, ΡΠΊΠ°Π·Π°Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²Π΅ΡΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π±ΠΎΡ VK Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ.
Π£Π΄Π°ΡΠΈ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π±ΠΎΡΠ° ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅ Π½Π° Python
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π±ΠΎΡΠ° ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π²Π°ΡΠΈΠΌ Π±ΠΎΡΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ vk_api ΠΈ python-vkbot. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install vk_api
pip install python-vkbot
2. ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΎΡΠ° Π² ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ:
- ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ°ΠΉΡ https://vk.com/dev ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Standalone-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
- ΠΠΎΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ client_id.
- Π‘Π³Π΅Π½Π΅ΡΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠ΄ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅:
https://oauth.vk.com/authorize?client_id=YOUR_CLIENT_ID&scope=messages&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.131&response_type=token
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ YOUR_CLIENT_ID Π½Π° Π²Π°Ρ client_id. - Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ· Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ.
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΡΠ°
vk_session = vk_api.VkApi(token='YOUR_ACCESS_TOKEN')
longpoll = VkBotLongPoll(vk_session, 'YOUR_GROUP_ID')
vk = vk_session.get_api()
# Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ
def send_message(user_id, message, keyboard=None):
vk.messages.send(
user_id=user_id,
message=message,
random_id=0,
keyboard=keyboard
)
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ
keyboard = VkKeyboard(one_time=True)
keyboard.add_button('ΠΠ½ΠΎΠΏΠΊΠ° 1', color=VkKeyboardColor.POSITIVE)
keyboard.add_button('ΠΠ½ΠΎΠΏΠΊΠ° 2', color=VkKeyboardColor.POSITIVE)
keyboard.add_line() # ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π½Π° Π²ΡΠΎΡΡΡ ΡΡΡΠΎΠΊΡ
keyboard.add_button('ΠΠ½ΠΎΠΏΠΊΠ° 3', color=VkKeyboardColor.NEGATIVE)
# ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ
send_message(user_id=USER_ID, message='ΠΡΠΈΠ²Π΅Ρ, Π²ΡΠ±Π΅ΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ:', keyboard=keyboard.get_keyboard())
4. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΠΉ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ send_message
:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if event.obj.get('text') == 'ΠΠ½ΠΎΠΏΠΊΠ° 1':
send_message(user_id=event.obj.get('from_id'), message='ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ 1')
elif event.obj.get('text') == 'ΠΠ½ΠΎΠΏΠΊΠ° 2':
send_message(user_id=event.obj.get('from_id'), message='ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ 2')
elif event.obj.get('text') == 'ΠΠ½ΠΎΠΏΠΊΠ° 3':
send_message(user_id=event.obj.get('from_id'), message='ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ 3')
5. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΡΠΎΠΌΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π±ΠΎΡΠ° ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅ Π½Π° Python. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ»ΡΡΡΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΎΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π»Π΅ΠΉ Π² Π²Π°ΡΠ΅ΠΌ Π±ΠΎΡΠ΅, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ.