ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ

Π‘ΠΎΡ‚ VK Π½Π° Python 2020 Π³ΠΎΠ΄Π° с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ Π² бСсСду

ВсСм Π΄ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток!

Π― ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ прочСсывал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² поисках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΠΎΡ‚Π° для Π’Πš, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python. Никак Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ†Π΅Π»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ΄Π½ΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ нСпонятныС ошибки ΠΈ Ρ‚Π°ΠΊ далСС…

Π”Ρ€ΡƒΠ·ΡŒΡ, я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π²Π°ΠΌΠΈ всСми Ρ‚Π΅ΠΌΠΈ знаниями ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π» ΠΈ сСйчас ΠΌΡ‹ с Π²Π°ΠΌΠΈ шаг Π·Π° шагом напишСм Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π±ΠΎΡ‚Π° Π’Πš для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ, 2020, Π³ΠΎΠ΄Π°. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ надСюсь ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ потСряСт Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ·ΠΆΠ΅.

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ?

НачнСм с установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ЕстСствСнно ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ cmd.exe ( Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора) ΠΈ прописываСм Ρ‚ΡƒΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

pip install vk
pip install vk_api

ΠœΡ‹ установили Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ нашСго Python-Π° с сСрвисом VK.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запускаСм IDLE ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄.

Объясняю: ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ установлСнныС Ρ€Π°Π½Π΅Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ.

Авторизация

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°. Π’Π°ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΠΊΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ, ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сообщСний ΠΈ, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, всС Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ захочСтся.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ longpool для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‡Π°Ρ‚Π°ΠΌΠΈ.

ΠΡŽΠ°Π½ΡΡ‹

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ нСльзя ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±ΠΎΡ‚Π° для ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° Π›Π‘ ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² бСсСдС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… модуля longpool ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ запускаСтся ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΠ΅ longpool-ΠΎΠΌ Π½Π° ΠΊΠ°Π½Π°Π»Π΅ Β«Π›Π‘Β»(Π›ΠΈΡ‡Π½Ρ‹Π΅ БообщСния) ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°, Ρ‚.Π΅. Ρ‡Π°Ρ‚Π° нСдоступно, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ процСсс ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ. ΠŸΡ€ΠΎΡ‰Π΅ говоря Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π° Π½Π΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΊΠΎΠ΄Π΅ я Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ с Π›Π‘, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π΅Π΅ Π² »’ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ для Π›Π‘.

Кнопки

Π’Π΅ΠΏΠ΅Ρ€ΡŒ объявим ΠΏΠ°Ρ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ наш Π±ΠΎΡ‚ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ. К Π½ΠΈΠΌ ΠΌΡ‹ обратимся вскорС Π΅Ρ‰Ρ‘ Ρ€Π°Π·.

ΠŸΡ€ΠΈΠ΅ΠΌ-ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний ΠΈΠ· бСсСды

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅ΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ longpool Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Ρ… сообщСний. event β€” пСрСмСнная Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ само сообщСниС ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π½Π΅ΠΌ.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΡˆΠ΅: Если слово Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β» ΠΈΠ»ΠΈ «. » ΠΈΠ»ΠΈ «. » содСрТится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ event, Ρ‚ΠΎΠ³Π΄Π°:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΠΊΡƒΠ΄Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ наш event. Если Π² Ρ‡Π°Ρ‚ Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний Β«vk.messages.sendΒ».

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅

… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ key, server ΠΈ ts Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для установки связи с сСрвСром VK. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π° ΠΎΠ½ΠΈ Ρƒ всСх свои, Π½ΡƒΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° сайт VK Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса» ввСсти ID своСй Π³Ρ€ΡƒΠΏΠΏΡ‹.

random_id β€” это случайный id сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях VK_API Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ обязатСлСн.

chat_id β€” это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ бСсСды, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΡˆΠ΅Π» event ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ говоря сообщСниС.

if ‘ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°’ in str(event):

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ «ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°«, Ρ‚ΠΎ наш Π±ΠΎΡ‚ Ρ‰Π΅Π΄Ρ€ΠΎ прСдоставит ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅.

Π§Π°ΡΡ‚ΡŒ с Π›ΠΈΡ‡Π½Ρ‹ΠΌΠΈ БообщСниями

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΏΠΈΡˆΠ΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ для Π›Π‘ Π±Π΅Π· особых подробностСй.

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! ΠœΡ‹ с Π²Π°ΠΌΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ Π±ΠΎΡ‚Π° Π½Π° Python 2020 Π³ΠΎΠ΄Π°. А сСйчас я ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ вСсь ΠΊΠΎΠ΄ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΡ‚ для VK Π½Π° Python с MySQL Π·Π° час Ρ‡.1

Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΡ‚Π° для Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, Π½ΠΎ всС ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ сущСствСнныС нСдостатки для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². Они Π΄Π°ΡŽΡ‚ совсСм ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π±Π°Π·Ρƒ ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ.

Π’ этом Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π΅ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ максимально простого Π±ΠΎΡ‚Π° с довольно большим Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ.

Π§Ρ‚ΠΎ Π½Π°ΠΌ понадобится?

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ настройкС Π±ΠΎΡ‚Π° ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ИмСнно Π² ΠΌΠΎΠ΅ΠΌ случаС всС Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² Ρ„Π°ΠΉΠ»Π΅ config.py. Π’Ρ‹ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. На Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ повлияСт.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Для этого создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ модуля PyMySQL:

Π­Ρ‚Π° функция Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. БоотвСтствСнно подставляСм свои Π΄Π°Π½Π½Ρ‹Π΅ Π³Π΄Π΅ Π²ΠΈΠ΄ΠΈΠΌ Β«you_Β».

Настройка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±ΠΎΡ‚Ρƒ

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² настройки своСй Π³Ρ€ΡƒΠΏΠΏΡ‹:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ прочСсывал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² поисках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΠΎΡ‚Π° для Π’Πš, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python. Никак Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ†Π΅Π»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ΄Π½ΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ нСпонятныС ошибки ΠΈ Ρ‚Π°ΠΊ далСС…

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π Π°Π±ΠΎΡ‚Π° с API ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ доступа(Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΠ½ Π½Π°ΠΌ пригодится для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±ΠΎΡ‚Ρƒ.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ прочСсывал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² поисках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΠΎΡ‚Π° для Π’Πš, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python. Никак Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ†Π΅Π»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ΄Π½ΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ нСпонятныС ошибки ΠΈ Ρ‚Π°ΠΊ далСС…

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«Long Poll APIΒ» ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. А Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ послСднюю ΠΈΠ· доступных вСрсий

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ прочСсывал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² поисках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΠΎΡ‚Π° для Π’Πš, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python. Никак Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ†Π΅Π»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ΄Π½ΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ нСпонятныС ошибки ΠΈ Ρ‚Π°ΠΊ далСС…

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Β«Π’ΠΈΠΏΡ‹ событий» ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобится. Π― Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ всС

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ прочСсывал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² поисках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΠΎΡ‚Π° для Π’Πš, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python. Никак Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ†Π΅Π»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ΄Π½ΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ нСпонятныС ошибки ΠΈ Ρ‚Π°ΠΊ далСС…

И послСднСС. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² «БообщСния» > «Настройки для Π±ΠΎΡ‚Π°Β» ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±ΠΎΡ‚ΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ прочСсывал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² поисках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΠΎΡ‚Π° для Π’Πš, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python. Никак Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ†Π΅Π»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ΄Π½ΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ нСпонятныС ошибки ΠΈ Ρ‚Π°ΠΊ далСС…

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΡ‚Π° ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΡ‚Π° ΠΊ long poll ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ дСйствий со стороны Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ самого Π±ΠΎΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ входящиС сообщСния ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π Π°Π±ΠΎΡ‚Π° с Π±ΠΎΡ‚ΠΎΠΌ

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±ΠΎΡ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ наши сообщСния нашими ΠΆΠ΅ сообщСниями. Для этого послС послСднСй строчки ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ это:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ vk.messages.send().Π­Ρ‚ΠΎ стандартный ΠΌΠ΅Ρ‚ΠΎΠ΄ модуля vk_api. О ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅(ссылка Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅).

Он позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.

АргумСнт user_id ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρƒ это сообщСниС это Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. Π’ нашСм случаС event.obj.from_id ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ отправляСм сообщСниС Ρ‚ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Π΅Π³ΠΎ Π½Π°ΠΌ.
Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ этот Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ!

АргумСнт random_id Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π½Π΅ отправлял сообщСния ΠΏΠΎ 2 Ρ€Π°Π·Π°. Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ этот Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ!

АргумСнт message собствСнно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅ сообщСниС ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. Π’ event.obj.text хранится информация ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ тСкст Π² сообщСнии ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ. Π­Ρ‚ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΎΠΆΠ΅ обязатСлСн.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΎΠ± Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΊ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ страницС Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅.

Запуск

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наш Π±ΠΎΡ‚ Π³ΠΎΡ‚ΠΎΠ² ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. ПослС запуска ΠΌΠΎΠΆΠ½ΠΎ смСло ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΡ‚Ρƒ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

На этом 1 Ρ‡Π°ΡΡ‚ΡŒ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°. ΠœΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΎΡ‚Π°. ΠΠ°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния.

Π’ΠΎ 2 части ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PyMySQL Π·Π°Π½ΠΎΡΠΈΡ‚ΡŒ сообщСния Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΎΡ‚Π° для Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π½Π° языкС програмирования Python

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΎΡ‚Π° для Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π½Π° языкС программирования Python

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ vk_api.

Π’ Π½Π°Ρ‡Π°Π»Π΅ разбСрСмся ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ для нашСго Π±ΠΎΡ‚Π°.

НачинаСм ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ:

Π”Π°Π»Π΅Π΅ пишСм строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Ρ‹, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с сообщСством (Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π±ΠΎΡ‚Π°):

Π”Π°Π»Π΅Π΅ пишСм Ρ†ΠΈΠΊΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ сообщСния:

ΠœΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΌ (Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ это мСсто Π°ΠΈΡ†) Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС Π½Π°Π΄ΠΎ Π² Π°ΠΈΡ† Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ†ΠΈΠΊΠ» ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сообщСний:

Учимся ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ стикСры ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ стикСры Π² Π°ΠΈΡ† добавляСм:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ id стикСра для этого Π½Π°Π΄ΠΎ:

Π§Ρ‚ΠΎ Π±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ Π½Π°Π΄ΠΎ Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‡Ρ‚ΠΎ Π±Ρ‹ фотография Π±Ρ‹Π»Π° Π»ΠΈΠ±ΠΎ Ρƒ вас Π½Π° устройствС Π»ΠΈΠ±ΠΎ Π²ΠΎ Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ (я расскаТу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ).

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π°ΠΉΠ΄ΠΈ Ρ„ΠΎΡ‚ΠΎ Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ ΠΈ Π² ссылкС ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст начиная со слова photo Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π΄ΠΎ % Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:photo-190960458_457239182

Π”Π°Π»Π΅Π΅ Π² Π°ΠΈΡ† добавляСм:

Π° Π² Ρ†ΠΈΠΊΠ» добавляСм:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹


Для Π½Π°Ρ‡Π°Π»Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ
ΠŸΠΎΡ‚ΠΎΠΌ ΠΈΠ΄Π΅Ρ‚ описаниС самой ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

Π”Π°Π»Π΅Π΅ добавляСм Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ keyboard=keyboard.get_keyboard()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ПишСм Ρ‡Π°Ρ‚ Π±ΠΎΡ‚Π° для Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π½Π° python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ longpoll

БСйчас Π±ΠΎΡ‚Ρ‹ стали ΠΎΠ±Ρ‹Π΄Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ находятся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡˆΠ°Π³Ρƒ, Π½ΠΎ Ссли Ρ‚Π΅Π±Π΅ Π½ΡƒΠΆΠ΅Π½ свой Π±ΠΎΡ‚ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти Π²ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, Ρ‚ΠΎ это Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Ну прям совсСм для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

Как ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

Long Polling β€” это тСхнология, которая позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… событиях с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Β«Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… запросов». Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ запрос, Π½ΠΎ отправляСт ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ сразу, Π° лишь Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ событиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ сообщСниС), Π»ΠΈΠ±ΠΎ истСчёт Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя оТидания.

Говоря русским языком, ΠΌΡ‹ отправляСм Π½Π° сСрвСр запрос, Π° ΠΎΠ½ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ‚Ρ‹ΠΊΠ°Π΅Ρ‚ Π²ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Ссли Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ‡Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΌ ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ сообщСниС ΠΎΠ½ Π±Π΅ΠΆΠΈΡ‚ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎΠ± этом Π½Π°ΠΌ. ΠžΡ‚ этого ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ»ΡΡΠ°Ρ‚ΡŒ.

ВСхничСская рСализация

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ β€” это ΠΌΡ‹, Π° Π½Π΅ ΠΊΡ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Ρ‘. ДСлаСтся это ΠΎΡ‡Π΅Π½ΡŒ просто.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅, рСбята ΠΈΠ· Π’Πš Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Π»ΠΎΠ³ΠΈΠ½Π° Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Ρ‚.ΠΊ. ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ€Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π°Π½Ρ‚ΠΈΡ€ΠΎΠ±ΠΎΡ‚, Ρ‚Ρƒ ΡΠ°ΠΌΡƒΡŽ Π³Π΄Π΅ тСбя просят ввСсти Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ· Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°.

Если Π±ΠΎΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠ΄Π΅Ρ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Ρ‚ΠΎ авторизация выглядит ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

β€” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚ΠΎΠΊΠ΅Π½?
β€” Вакая ΡˆΡ‚ΡƒΠΊΠ° ΠΈΠ· Ρ†ΠΈΡ„Π΅Ρ€ΠΎΠΊ ΠΈ Π±ΡƒΠΊΠΎΠ²ΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² настройках Π³Ρ€ΡƒΠΏΠΏΡ‹. Для этого достаточно ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» Β«Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСством» (Β«Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ страницСй», Ссли Ρƒ Вас публичная страница), Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«Π Π°Π±ΠΎΡ‚Π° с APIΒ» ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ доступа».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ longpool.

Π’ сообщСниях ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ тСкст. НапримСр:

А Π΅Ρ‰Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.

МоТно ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ всСго интСрСсного, Π½ΠΎ Ρ‚ΡƒΡ‚ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ сами, Π° я лишь скаТу Ρ‡Ρ‚ΠΎ: ссылки ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° части. НапримСр:

ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ» Π½Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ:

Бсылки Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ

На этом я с Π²Π°ΠΌΠΈ ΠΏΠΎΠΏΡ€ΠΎΡ‰Π°ΡŽΡΡŒ. Π₯ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° для Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Python, Django ΠΈ webhook

Π—Π°Ρ‡Π΅ΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ созданиС Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π°?

Π—Π°Ρ‡Π΅ΠΌ ΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΉ хостинг?

На ΠΌΠΎΠΉ взгляд ТизнСспособный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π±ΠΎΡ‚Π° β€” это ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π΅ зависит ΠΎΡ‚ вашСго локального ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ доступСн 24/7. Для этого Π½ΡƒΠΆΠ΅Π½ хостинг, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ: Π²Π΅Π±-сСрвСр, систСма управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (для развития возмоТностСй Π±ΠΎΡ‚Π°), рСгистрация Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ для Π½Π΅Π³ΠΎ SSL-сСртификата ΠΈ тСхничСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° всСго этого хозяйства. Π’Π°ΠΊΠΈΠ΅ услуги стоят Π΄Π΅Π½Π΅Π³. Π― ΠΏΠ»Π°Ρ‡Ρƒ хостингу 138 Ρ€ΡƒΠ±Π»Π΅ΠΉ Π² мСсяц Π·Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ инфраструктуры для работоспособности Π±ΠΎΡ‚Π°: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Python + Django, Π‘Π£Π‘Π” MySQL 25 Π“Π±, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SSH.
Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΡƒΡ€ΠΎΠΊΠΎΠ² я Π²ΠΈΠ΄Π΅Π» Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π² качСствС сСрвСра ΠΈΠ»ΠΈ бСсплатный хостинг с ограничСниями ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Ρ‚. ΠΏ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π±ΠΎΡ‚ с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ сСрвСр мСссСндТСра Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ появлСния Π½ΠΎΠ²Ρ‹Ρ… сообщСний ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ лишняя Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° сСрвСры мСссСндТСра, поэтому Π±ΠΎΡ‚ ΠΌΠΎΠ³ΡƒΡ‚ Β«Π·Π°Π±Π°Π½ΠΈΡ‚ΡŒΒ» Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя. Всё это ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ мнСнию Π½Π΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования. Но для тСста ΠΈ обучСния Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ webhook ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½?

Для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡ‡ΠΈΡ‚Π°ΡŽ использованиС webhook’а, Ρ‚. Π΅. ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ наш Π±ΠΎΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ сообщСний ΠΎΡ‚ сСрвСра мСссСнТСра, Π° Π½Π΅ Β«Π΄ΠΎΠ»Π±ΠΈΡ‚Β» Π΅Π³ΠΎ пСриодичСским запросами: Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ сообщСния ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π‘ webhook’ом Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊ: написал ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сообщСниС, сСрвСр мСссСндТСра ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Π΅Π³ΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π±ΠΎΡ‚Ρƒ, ΠΎΠ½ сообщСниС принял, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ».

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Django?

Π― Ρ€Π΅ΡˆΠΈΠ» Π΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΡ‚Π° Π½Π° python, поэтому ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π½Π° хостингС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ python. Но Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Ρƒ мСня Π½Π΅ Π±Ρ‹Π»ΠΎ β€” хостинг располагаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Django. Говорят Π½Π° Π½Ρ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Instagram, Pinterest, Bitbucket ΠΈ Mozilla. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому хостинг ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, Π° Π½Π΅ Telegram ΠΈΠ»ΠΈ Viber?

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ простого ΠΊ слоТному для мСня Π±Ρ‹Π»ΠΎ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ самый простой ΠΈ понятный способ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ webhook. Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ оказался для мСня Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ понятным Π²Π²ΠΈΠ΄Ρƒ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ справкС ΠΈ простоты ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ webhook’a Π² ΠΏΠ°Π½Π΅Π»ΠΈ управлСния сообщСством Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ β€” Π Π°Π±ΠΎΡ‚Π° с APIΒ». ОписаниС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ я всё настраивал ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π» Π±ΡƒΠ΄Π΅Ρ‚ дальшС. Π’ пСрспСктивС Ρ…ΠΎΡ‡Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ доступным своСго Π±ΠΎΡ‚Π° Π² Viber. А с Telegram ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, Ρ‚. ΠΊ. ΠΌΠΎΠΉ хостинг Π² России, Π° ΠΈΠ· России Telegram Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Telegram ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡƒΠΏΠΈΡ‚ΡŒ хостинг Π·Π°Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ.

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ webhook для Π±ΠΎΡ‚Π° Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅?

Π”ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя https://. Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя сайта ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ для Π½Π΅Π³ΠΎ ssl-сСртификат.

Π― Π½Π΅ Ρ…ΠΎΡ‚Π΅Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½, поэтому послС рСгистрации Π΄ΠΎΠΌΠ΅Π½Π°, я сдСлал ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» для Π½Π΅Π³ΠΎ ssl-сСртификат.

ВсС эти манипуляции я сдСлал Π½Π° сайтС хостинга Π² своём Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅.
Π’ ΠΈΡ‚ΠΎΠ³Π΅ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» адрСс сайта mybot.mysite.ru ΠΈ ssl-сСртификат ΠΊ Π½Π΅ΠΌΡƒ.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ для Π±ΠΎΡ‚Π° ΠΊΠ»ΡŽΡ‡ доступа (Ρ‚ΠΎΠΊΠ΅Π½) Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅. Π‘ΠΏΠ΅Ρ€Π²Π° создал Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ, Π΄Π°Π»Π΅Π΅ Π·Π°ΡˆΡ‘Π» Π² Β«ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Β» Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, Π² Ρ€Π°Π·Π΄Π΅Π» Β«Π Π°Π±ΠΎΡ‚Π° с APIΒ». Π’ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠšΠ»ΡŽΡ‡ΠΈ доступа» находится Ρ‚ΠΎΠΊΠ΅Π½, Π° Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Callback APIΒ» настройки webhook’a.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. image loader. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ для Π²ΠΊ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ прочСсывал ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² поисках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±ΠΎΡ‚Π° для Π’Πš, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python. Никак Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ†Π΅Π»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ΄Π½ΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ нСпонятныС ошибки ΠΈ Ρ‚Π°ΠΊ далСС…

Установка ΠΈ настройка Django. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ для запуска вашСго скрипта Π½Π° python Django Π½Π΅ Π½ΡƒΠΆΠ΅Π½, Π½ΠΎ я Π½Π΅ знаю ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ PuTTY я ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ ΠΊ сСрвСру ΠΏΠΎ SSH, настроил ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π» Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС создаёт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π» послС Ρ‚ΠΎΡ‡ΠΊΠΈ). ВСрсия 2.7 ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½Π° хостингом ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² вашСм случаС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ справку хостинга.

Π”Π°Π»Π΅Π΅ установил Django
SSH:

установил Π”ΠΆΠ°Π½Π³ΠΎ вСрсии Π½Π΅ Ρ€Π°Π½Π΅Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Ρ‚. ΠΊ. Π½Π° хостингС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ python 2.7, Π° с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Django вСрсии мСньшС 2.

И установил python-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅
SSH:

FTP:
Π‘ΠΎΠ·Π΄Π°Π» ΠΏΠ°ΠΏΠΊΡƒ для django-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° хостингС. Назвал Π΅Ρ‘ django.

SSH:
Π‘ΠΎΠ·Π΄Π°Π» Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ создастся ΠΏΠ°ΠΏΠΊΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π² нашСм случаС β€” это Β«mybotΒ») Π² ΠΏΠ°ΠΏΠΊΠ΅ /django. Π’ Π½Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, созданныС автоматичСски:
/django
/mybot – ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
/mybot – ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с настройками нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
__init__.py
settings.py
urls.py
wsgi.py
manage.py

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π² Django – это Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Django – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая выполняСт дСйствия, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.

SSH:
Π‘ΠΎΠ·Π΄Π°Π» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π― ΠΏΠ΅Ρ€Π΅ΡˆΡ‘Π» Π² ΠΏΠ°ΠΏΠΊΡƒ /django/mybot ΠΈ создал Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«vk_botΒ».
Π’ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° создалась ΠΏΠ°ΠΏΠΊΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ прилоТСния, содСрТащая Ρ„Π°ΠΉΠ»Ρ‹ прилоТСния, созданныС автоматичСски:

/django
/mybot – ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
/mybot – ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с настройками нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
__init__.py
settings.py
urls.py
wsgi.py
manage.py
/vk_bot – ΠΏΠ°ΠΏΠΊΠ° прилоТСния
__init__.py
admin.py
apps.py
models.py
tests.py
views.py

FTP:
Π― Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° свой Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ.
Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ программирования я использовал ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Atom.

Atom:
ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ„Π°ΠΉΠ»Π΅ /django/mybot/mybot/settings.py

Atom:
ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» настройки url-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ адрСсов Π² Ρ„Π°ΠΉΠ»Π΅ /django/mybot/mybot/urls.py

FTP:
Π‘ΠΎΠ·Π΄Π°Π» Ρ„Π°ΠΉΠ» /django/mybot/vk_bot/urls.py Ρ‚Π°ΠΊΠΎΠ³ΠΎ содСрТания:

Atom:
ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» Ρ„Π°ΠΉΠ» /django/mybot/vk_bot/views.py – Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² Π½Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ index, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ запросС Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ адрСса

Π’ скриптС views.py, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ index(request) ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² Django CSRF Π·Π°Ρ‰ΠΈΡ‚Ρƒ, Ρ‚.ΠΊ. я ΠΏΠΎΠ»ΡƒΡ‡Π°Π» ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«403 ForbiddenΒ». CSRF β€” Cross Site Request Forgery protection β€” Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ мСТсайтовых запросов. Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ CSRF ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.
Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ я использовал Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ @csrf_exempt. Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Ρ‚Π°ΠΊΠΈ эту Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ простым способом я использовал сСкрСтный ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прописываСтся Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ управлСния Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Π½Π° сайтС Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅.

Π’ΠΎΡ‚ это кусок ΠΊΠΎΠ΄Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запросы с сСрвСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ наш webhook для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ Ρ‚Π°ΠΊ, Β«ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅Β» нашСго webhook’a.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ настройки я Π΄Π΅Ρ€ΠΆΡƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±ΠΎΡ‚Π° bot_config.py ΠΈ поэтому ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽ Π΅Π³ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ скрипта:

А Π² этот кусок ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ сообщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ:

Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ показалось нСпонятным, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ настройкС Django.

Магия для Π²Π΅Π±-сСрвСра. Для настройки адрСсации запросов ΠΊ Π²Π΅Π±-сСрвСру Π·Π°ΡˆΡ‘Π» Π½Π° сСрвСр Π² ΠΏΠ°ΠΏΠΊΡƒ с Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· FTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ FileZilla ΠΈ создал Ρ‚Π°ΠΌ ΠΏΠ°ΠΏΠΊΡƒ «mybot.mysite.ru«, Π² Π½Π΅Ρ‘ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… взято ΠΈΠ· справки Π½Π° хостингС:

Π—Π΄Π΅ΡΡŒ Β«myEnvΒ» β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ созданного Π²Π°ΠΌΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния, Β«djangoΒ» β€” ΠΏΠ°ΠΏΠΊΠ° Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π½Π° хостингС, Β«mybotΒ» β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Django.

Β«ΠŸΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Π΅ΠΌΒ» наш webhook ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сообщСний Π² созданной Π³Ρ€ΡƒΠΏΠΏΠ΅ Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅.
Для этого вСрнёмся Π² Ρ€Π°Π·Π΄Π΅Π» управлСния нашСй Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Π½Π° сайтС Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ (см. ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Π²Ρ‹ΡˆΠ΅). Π’Π²Π΅Π΄Ρ‘ΠΌ Π² ΠΏΠΎΠ»Π΅ «АдрСс» наш адрСс webhook’a ΠΈ Π½Π°ΠΆΠΌΡ‘ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒΒ». Если наша функция index(request), написанная Π² Ρ„Π°ΠΉΠ»Π΅ /django/mybot/vk_bot/views.py Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Ρ‚. Π΅. Π² Π½Π΅ΠΉ Π½Π΅Ρ‚ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ ΠΈ ошибок, Ρ‚ΠΎ появится зСлёная Π³Π°Π»ΠΎΡ‡ΠΊΠ°, ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ‡Ρ‚ΠΎ всё Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ наш webhook ΠΏΠΎΠ»ΡƒΡ‡Π°Π» ΠΎΡ‚ сСрвСра Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ сообщСния ΠΎ Π½ΠΎΠ²Ρ‹Ρ… сообщСниях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ управлСния нашСй Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Π½Π° сайтС Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π’ΠΈΠΏΡ‹ событий» поставим Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² «входящиС сообщСния».

Π’ ΠΈΡ‚ΠΎΠ³Π΅ наш скрипт Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ сообщСния Π² json Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² json сообщСнии Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Β«secretΒ». Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‚ самый сСкрСтный ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я прописал Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ управлСния Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Π½Π° сайтС Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, Π²Π·Π°ΠΌΠ΅Π½ встроСнной Π² Django CSRF Π·Π°Ρ‰ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΡ‚Π° ΡƒΠΌΠ½Π΅Π΅ ΠΈ Π»ΡƒΡ‡ΡˆΠ΅?

МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΡ‚Π° Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠΎ смыслу ΠΊ вопросу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Об этом расскаТу Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.
МоТно ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сцСнарии взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *