Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ быстрых ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²(keyboard) для Π±ΠΎΡ‚ΠΎΠ² Π² Π’Πš

НСдавно Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для Π±ΠΎΡ‚ΠΎΠ² Π’Πš — ΠΊΠ½ΠΎΠΏΠΊΠΈ быстрых ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΆΠ΅ keyboard.

Π’ΠΠ–ΠΠž! Π‘ΠΎΠ»Π΅Π΅ свСТая вСрсия ΡΡ‚Π°Ρ‚ΡŒΠΈ находится здСсь

Наша ΠΊΠΎΠΌΠ°Π½Π΄Π° «Π±ΠΎΡ‚описцСв» сразу Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π»Π°ΡΡŒ этим Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π°Ρ‡Π°Π»Π° ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ API, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ созданию Π±ΠΎΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ keyboard. Π’ Ρ…ΠΎΠ΄Π΅ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ получится Π±ΠΎΡ‚, ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² нашСй Π³Ρ€ΡƒΠΏΠΏΠ΅ GameTips Π² Π’Πš. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ бСсСдС-ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ Π² Π²ΠΊ, Π³Π΄Π΅ Π²Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с возникшСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.



ОглавлСниС:

  1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ настройка сообщСства
  2. Настройка сСрвСра
  3. Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Callback API ΠΈ keyboard
  4. Π Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ
  5. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΠΎΡ‚Π°
  6. ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ!
  7. FAQ


Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ настройка сообщСства

ПослС создания сообщСства Π² Π’Πš прослСдуйтС ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ:
Β«Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСством» →«БообщСния» ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ сообщСства. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² подмСню «Настройки для Π±ΠΎΡ‚Π°Β» Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ «ВозмоТности Π±ΠΎΡ‚ΠΎΠ²Β» ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠΠ°Ρ‡Π°Ρ‚ΡŒΒ».

ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π‘allback api(отправляСт ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ дСйствиС Π² сообщСствС ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° сСрвСр). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Π³ΠΎ Ρ‚ΠΎΠΆΠ΅ слСдуСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π²
Β«Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСством» β†’Β»Π Π°Π±ΠΎΡ‚Π° с APIΒ». Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΎΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ доступа. НаТимаСтС «Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡» ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€Π°Π²Π° доступа, для этого Π±ΠΎΡ‚Π° Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°Π²Π° Π½Π° сообщСния. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ сохраняСм ΠΊΡƒΠ΄Π° Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠ»ΡŽΡ‡ доступа. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Callback API. Π‘Ρ‚Π°Π²ΠΈΠΌ своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сСрвСра ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ API(Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ½Π° 5.80, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ с Π½Π΅ΠΉ Π½ΠΈΠΆΠ΅ прСдставлСнный Π±ΠΎΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ 100%) . Π’ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Π’ΠΈΠΏΡ‹ запросов» Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ входящиС сообщСния.

Настройка сСрвСра

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ понадобится сСрвСр для хостинга своСго Π±ΠΎΡ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсплатныС хостинги, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 000webhost.

Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅/бСсплатныС хостинги, Ρ‚ΠΎ вСроятнСС всСго Π½Π° Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ cURL(Π²Ρ‹ Π½Π΅ смоТСтС ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΎΡ‚ΠΎΠΌ ΠΌΠ΅Π΄ΠΈΠ° Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст), ΠΈ Π΅Π³ΠΎ нСльзя Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π£ 000webhost всС с этим Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ . Если Ρƒ вас свой сСрвСр ΠΈΠ»ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΡƒΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ, Ρ‚ΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ cURL для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΎΡ‚Π° ΠΈΠ· нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Callback API ΠΈ keyboard

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρƒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ экскурс ΠΊΠ°ΠΊ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π‘allback API отсылаСт Π½Π° ваш сСрвСр любоС событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ происходит Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Π²ΠΈΠ΄Π΅ JSON. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список событий ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π‘allback APIΒ» β†’ Β«Π’ΠΈΠΏΡ‹ событий». Π’ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит JSON запрос ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ отправляСт сообщСниС, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ½ Π½Π°ΠΆΠ°Π» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ:

{"type":"message_new","object":{"date":1529668584,"from_id":89846036,"id":1522,"out":1,"peer_id":89846036,"text":"Золотая Ρ€Ρ‹Π±ΠΊΠ°","conversation_message_id":305,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"payload":"{\"animals\":\"Goldfish\"}","is_hidden":false},"group_id":101461081}

Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ нСсколько интСрСсных ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ: id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, тСкст сообщСния(text), полСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ(payload).

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° messages.send. Если Π²Ρ‹ отправляСтС ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ, Ρ‚ΠΎ послС всСх стандартных ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹ добавляСтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ keyboard, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит json ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠ½ выглядит:

keyboard: {
   "one_time": false,
   "buttons": [
     [{
       "action": {
         "type": "text",
         "payload": "{\"button\": \"1\"}",
         "label": "Red"
       },
       "color": "negative"
     },
    {
       "action": {
         "type": "text",
         "payload": "{\"button\": \"2\"}",
         "label": "Green"
       },
       "color": "positive"
     }]

 

Π Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΎΡ‚Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° PHP. Π—Π΄Π΅ΡΡŒ (Если ссылка Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎ Π²ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΠ²)Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ саму Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Π’ΠΎΡ‚ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ листинг Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для написания Π±ΠΎΡ‚Π°, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈΡ‰ΠΈΡ‚Π΅ ΠΏΠΎ ссылкС Π²Ρ‹ΡˆΠ΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΎΠ± измСнСниях Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Ρ‚ΠΎ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ сообщСниС Π½Π°ΡˆΠ΅ΠΌΡƒ Π±ΠΎΡ‚Ρƒ Π² Π’Πš, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ вас ΠΎΠΏΠΎΠ²Π΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ± измСнСниях.

$vk = new vk_api(vk_key, version_api) — инициализация Π±ΠΎΡ‚Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ΠΊΠ»ΡŽΡ‡ сообщСства(vk_key), вСрсия API(version_api).

sendMessage(id, text) — функция ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний ΡŽΠ·Π΅Ρ€Ρƒ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ(id), тСкст сообщСния(text).

sendImage(id, patch) — функция ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ(id), ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ изобраТСния(patch).

sendButton(id, text, buttons, one_time) — функция ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ(id), тСкст сообщСния(Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым)(text), массив с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ(buttons), Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ one_time, ΠΏΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ false, Ссли ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ true, Ρ‚ΠΎ послС наТатия Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° скроСтся.

request(method, array_arguments) — ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ функция Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: method — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ api, array_arguments — массив ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

sendOK() — Π‘Π΅Ρ‚Π° функция. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСсто echo «ok», ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта Π΄ΠΎΠ»Π³ΠΎΠ΅, ΠΈ Π±ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ сообщСния ΠΏΠΎ нСсколько Ρ€Π°Π·.
Π’ΠΠ–ΠΠž: Π΅ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚ΠΎ Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π²Ρ‹Π²ΠΎΠ΄ ошибок. Π’ΠΎ врСмя Π΄Π΅Π±Π°Π³Π° замСняйтС Π½Π° echo «ok»

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΠΎΡ‚Π° Π½Π° PHP

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ собствСнно ΠΊ ΠΊΠΎΠ΄Ρƒ, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΡ‡Ρ‚ΠΈ каТдая строка.
Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ поддСрТиваСтся Π½Π° PHP 5.6+
Π’ Π±Π»ΠΎΠΊΠ΅ CONFIG ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ свой ΠΊΠ»ΡŽΡ‡ доступа сообщСства, ΠΊΠ»ΡŽΡ‡ для подтвСрТдСния сСрвСра Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ Π²Π΅Ρ€ΡΠΈΡŽ API.

<?php
include "vk_api.php"; //ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с api vk

//**********CONFIG**************
const VK_KEY = "your_key"; //Ρ‚ΠΎΡ‚ самый Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ доступа сообщСства
const ACCESS_KEY = "your_key"; //Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ c40b9566, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ свой
const VERSION = "5.80"; //ваша вСрсия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ api
//******************************

const BTN_FISH =  [["animals" => 'Fish'], "А ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚?", "blue"]; //Код ΠΊΠ½ΠΎΠΏΠΊΠΈ 'Fish'
const BTN_BACK =  [["command" => 'start'], "<< Назад", "red"]; // Код кнопки '<< Назад'
const BTN_SALMON = [["animals" => 'Pink_salmon'], "Π“ΠΎΡ€Π±ΡƒΡˆΠ°", "white"]; // Код ΠΊΠ½ΠΎΠΏΠΊΠΈ 'Π“ΠΎΡ€Π±ΡƒΡˆΠ°'
const BTN_GOLDFISH = [["animals" => 'Goldfish'], "Золотая Ρ€Ρ‹Π±ΠΊΠ°", "blue"]; // Код ΠΊΠ½ΠΎΠΏΠΊΠΈ 'Золотая Ρ€Ρ‹Π±ΠΊΠ°'
const BTN_PLOTVA = [["animals" => 'Plotva'], "ΠŸΠ»ΠΎΡ‚Π²Π°", "green"]; // Код ΠΊΠ½ΠΎΠΏΠΊΠΈ 'ΠŸΠ»ΠΎΡ‚Π²Π°'

$vk = new vk_api(VK_KEY, VERSION); // созданиС экзСмпляра класса Ρ€Π°Π±ΠΎΡ‚Ρ‹ с api, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ api
$data = json_decode(file_get_contents('php://input')); //ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ JSON ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠΉ ΠΈΠ· Π’Πš

if ($data->type == 'confirmation') { //Если vk Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡
  exit(ACCESS_KEY); //Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ скрипт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π°
}

$vk->sendOK(); //Π“ΠΎΠ²ΠΎΡ€ΠΈΠΌ vk, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ приняли callback

if (isset($data->type) and $data->type == 'message_new') { //ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ссли это сообщСниС ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  $id = $data->object->from_id; //ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ написал сообщСниС
  $message = $data->object->text;

  if (isset($data->object->peer_id))
        $peer_id = $data->object->peer_id; // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ peer_id Ρ‡Π°Ρ‚Π°, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΈΡ‚Π΅Π»ΠΎ сообщСниС
    else
        $peer_id = $id;
  
  if (isset($data->object->payload)){  //ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ payload
        	$payload = json_decode($data->object->payload, True);
   	} else {
      		$payload = null;
   	}
  
  if (isset($payload['command']) or mb_strtolower($message) == 'Π½Π°Ρ‡Π°Ρ‚ΡŒ') { //Если Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ << Π½Π°Π·Π°Π΄
    $vk->sendButton($peer_id, 'Π₯ΠΎΡ‡Π΅ΡˆΡŒ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Ρ‹Π±ΠΎΠΊ?', [[BTN_FISH]]); //ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
  } else {
    if ($payload != null) { // Ссли payload сущСствуСт
      switch ($payload['animals']) { //Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Ρ‡Ρ‚ΠΎ Π² payload ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…
        case 'Fish': //Если это Fish
          $vk->sendButton($peer_id, 'Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉ', [ //ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
            [BTN_SALMON, BTN_GOLDFISH, BTN_PLOTVA],
            [BTN_BACK]
          ]);
          break;
        case 'Pink_salmon': //Если это Π“ΠΎΡ€Π±ΡƒΡˆΠ°
          $vk->sendMessage($peer_id, "Π”Π΅Ρ€ΠΆΠΈ свою Π³ΠΎΡ€Π±ΡƒΡˆΡƒ!"); //отправляСм сообщСниС
          $vk->sendImage($peer_id, "img/pink_salmon.jpg"); //отправляСм ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ
          break;
        case 'Goldfish': //Если это Золотая Ρ€Ρ‹Π±ΠΊΠ°
          $vk->sendMessage($peer_id, "Она исполнит Ρ‚Π²ΠΎΠΈ ТСлания...");
          $vk->sendImage($peer_id, "img/goldfish.jpg");
          break;
        case 'Plotva': //Если это ΠŸΠ»ΠΎΡ‚Π²Π°
          $vk->sendMessage($peer_id, "Ой, ΠΏΠΎΡ…ΠΎΠΆΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π»ΠΈ)");
          $vk->sendImage($peer_id, "img/plotva.jpg");
          break;
        default:
          break;
      }
    }
  }
}
?>

 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄ сСбя.

Π‘Ρ‚Π°Ρ€Ρ‚ΡƒΠ΅ΠΌ!

Π—Π°Π»ΠΈΠ²Π°ΠΉΡ‚Π΅ свой скрипт ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° сСрвСр. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² настройках Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Callback API, вписываСм Π² ΠΏΠΎΠ»Π΅ адрСса ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ своСго скрипта ΠΈ ΠΆΠΌΠ΅ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ. Если Π²Ρ‹ всС сдСлали ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ рядом с адрСсом появится зСлСная Π³Π°Π»ΠΎΡ‡ΠΊΠ°.

FAQ:

Вопрос: Π’ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!
ΠžΡ‚Π²Π΅Ρ‚: Π—Π½Π°Ρ‡ΠΈΡ‚ Π³Π΄Π΅-Ρ‚ΠΎ накосячили. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, всС Π»ΠΈ Π²Ρ‹ сдСлали. Π›ΡŽΠ±ΠΎΠΉ шаг Π²Π»Π΅Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкС…

Вопрос: Π£ мСня всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.
ΠžΡ‚Π²Π΅Ρ‚: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π»ΠΈ Π²Ρ‹ ΠΏΠ°ΠΏΠΊΡƒ img с изобаТСниями. Π’Π°ΠΊ ΠΆΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сСрвСр, Π³Π΄Π΅ Π½Π΅ поддСрТиваСтся cURL.

Вопрос: Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π²Π΅Ρ€ΡΠΈΡŽ Π½Π° 5.78 ΠΈΠ»ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Π£ мСня Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
ΠžΡ‚Π²Π΅Ρ‚: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вСрсии api ΠΊΡ€ΠΎΠΌΠ΅ 5.80 Π½Π° свой страх ΠΈ риск. НапримСр Π½Π° вСрсии 5.78 ΠΎΡ‚ Π’Πš приходят Π΄Ρ€ΡƒΠ³ΠΈΠ΅ названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вмСсто object->text ΠΈΠ΄Π΅Ρ‚ object->body), поэтому скрипт ΠΊΡ€Π°ΡˆΠΈΡ‚ΡΡ. ВсС измСнСния api ΠΈΡ‰ΠΈΡ‚Π΅ здСсь.

Вопрос: Π‘ΠΎΡ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ сообщСния.
ΠžΡ‚Π²Π΅Ρ‚: Π’Π°Ρˆ скрипт Π΄ΠΎΠ»Π³ΠΎ выполняСтся. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sendOK. Если всС ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Ρ€Π΅ΡˆΠ΅Π½Π°, Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ косяк Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ½Π° Π΅Ρ‰Π΅ находится тСстировании.

Вопрос: НС появляСтся ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΠ°Ρ‡Π°Ρ‚ΡŒ.
ΠžΡ‚Π²Π΅Ρ‚: НСдавно ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ПослС Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ это Π±Π°Π³ Π’Πš, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присутствуСт Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏΠ°Ρ…. Если Ρƒ вас ΠΈΠΌΠ΅Π½Π½ΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‚ΠΎ ΡƒΠ±Π΅Ρ€ΠΈΡ‚Π΅ привСтствСнноС сообщСниС Π² настройках Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° появится. Если ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΅Ρ‰Π΅ Π½Π΅Ρ‚, Ρ‚ΠΎ Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ Π² настройках πŸ™‚

Вопрос: Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ чисто ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π±Π΅Π· сообщСния?
ΠžΡ‚Π²Π΅Ρ‚: API прСдусматриваСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСстС с ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΎ сообщСниСм, Π±Π΅Π· Π½Π΅Π³ΠΎ нСльзя.

Вопрос: Как ΠΌΠ½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»? Π£ мСня ΠΏΠ»ΠΎΡ…ΠΎ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ…
ΠžΡ‚Π²Π΅Ρ‚: ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π±ΠΎΡ‚ΠΎΠ² Π½Π° Π·Π°ΠΊΠ°Π· ΠΎΡ‚ 500Ρ€, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‚ΠΎ ΠΏΠΈΡˆΠΈΡ‚Π΅ насчСт этого Π² Π³Ρ€ΡƒΠΏΠΏΡƒ Π’Πš.

ΠžΡΡ‚Π°Π»ΠΈΡΡŒ Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ вопросы? ΠŸΠΈΡˆΠΈΡ‚Π΅ ΠΈΡ… Π½Π°ΠΌ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ, Ссли связано с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

Ну Π²ΠΎΡ‚ ΠΈ всС, Ρƒ вас Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π±ΠΎΡ‚ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ πŸ™‚

Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ этими знаниями с вашими Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Π½Π°ΡˆΡƒ Π³Ρ€ΡƒΠΏΠΏΡƒ Π’Πš, Ρ‚Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсного!