Author Topic: Оповещения в VK API  (Read 6897 times)

0 Members and 1 Guest are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Оповещения в VK API
« on: October 22, 2019, 12:39:53 PM »
В связи с обломом темы с телеграмом, предлагаю мутить оповещения из кликера в ВК. В ВК есть ограничение на отправку запросов ботами сообществ, которое нас мало волнует - 20 запросов с секунду. Я ставил цикл в котором бот отправлял мне сообщения постоянно. В цикле была пауза в 50 мс. Так что нас это ограничение вполне устраивает. Приложение от ВК можно установить на мобилу и таким образом всегда быть в курсе того, что у вас там на компе происходит в скриптах. Через ВК так же удобно намутить пульт управления скриптами. Ниже видео, на котором смотрим, как создать сообщество, в котором будем получать оповещения.

ВАЖНЫЕ МОМЕНТЫ:
Тип группы указываем - Частная, чтобы в нашу группу никто не лез и в ней были только вы и ваш бот.
Какую версию API выбираем, ту и используем потом в скрипте. В нашем скрипте это последняя версия - "v=5.102"
После всех настроек сообщества, в него необходимо написать первое сообщение. На видео таким сообщением является - "Упс"
В с крипте - $user_id, указываем - ВАШ id в ВК.
В папку с exe-шником кликера кидаем две dll-ки (libeay32.dll и ssleay32.dll)  -  https://yadi.sk/d/hWk3k-Q2i6uTrA  и  https://yadi.sk/d/_gajbqM4iPuu6A (Clickermann вроде должен быть 32-битной версии. Хз - работает ли 64-битная версия с этими dll.)
Если сообщение не отправилось, копируем сообщение ошибки из лога и показываем (экстрасенсов тут нет).

Ссылка на видео по созданию и настройке сообщества.
https://www.youtube.com/watch?v=d1lQyQBVtBY&feature=youtu.be

Скрипт Clickermann-а, для отправки сообщений на русском языке.
Code: (clickermann) [Select]
$access_token =""
$group_id =""
$user_id =""


//======================================= Отправка сообщений
SUB(VK_message, $sms)
   $random_id = ""
   FOR($a=0,$a<35)
      $s = RND(0, 9)
      $random_id = STRCONCAT($random_id,$s)
   END_CYC
   
   $message = ""
   FOR($i=0,$i<strlen($sms))
      $simvol = STRCUT ($sms, $i+1, 1)
     
      //= Таблица кодирования символов URL для русского алфавита.
      SWITCH($simvol)
         CASE("А")
            $message = STRCONCAT($message,"%D0%90")
         CASE("а")
            $message = STRCONCAT($message,"%D0%B0")
         CASE("Б")
            $message = STRCONCAT($message,"%D0%91")
         CASE("б")
            $message = STRCONCAT($message,"%D0%B1")
         CASE("В")
            $message = STRCONCAT($message,"%D0%92")
         CASE("в")
            $message = STRCONCAT($message,"%D0%B2")
         CASE("Г")
            $message = STRCONCAT($message,"%D0%93")
         CASE("г")
            $message = STRCONCAT($message,"%D0%B3")
         CASE("Д")
            $message = STRCONCAT($message,"%D0%94")
         CASE("д")
            $message = STRCONCAT($message,"%D0%B4")
         CASE("Е")
            $message = STRCONCAT($message,"%D0%95")
         CASE("е")
            $message = STRCONCAT($message,"%D0%B5")
         CASE("Ё")
            $message = STRCONCAT($message,"%D0%81")
         CASE("ё")
            $message = STRCONCAT($message,"%D1%91")
         CASE("Ж")
            $message = STRCONCAT($message,"%D0%96")
         CASE("ж")
            $message = STRCONCAT($message,"%D0%B6")
         CASE("З")
            $message = STRCONCAT($message,"%D0%97")
         CASE("з")
            $message = STRCONCAT($message,"%D0%B7")
         CASE("И")
            $message = STRCONCAT($message,"%D0%98")
         CASE("и")
            $message = STRCONCAT($message,"%D0%B8")
         CASE("Й")
            $message = STRCONCAT($message,"%D0%99")
         CASE("й")
            $message = STRCONCAT($message,"%D0%B9")
         CASE("К")
            $message = STRCONCAT($message,"%D0%9A")
         CASE("к")
            $message = STRCONCAT($message,"%D0%BA")
         CASE("Л")
            $message = STRCONCAT($message,"%D0%9B")
         CASE("л")
            $message = STRCONCAT($message,"%D0%BB")
         CASE("М")
            $message = STRCONCAT($message,"%D0%9C")
         CASE("м")
            $message = STRCONCAT($message,"%D0%BC")
         CASE("Н")
            $message = STRCONCAT($message,"%D0%9D")
         CASE("н")
            $message = STRCONCAT($message,"%D0%BD")
         CASE("О")
            $message = STRCONCAT($message,"%D0%9E")
         CASE("о")
            $message = STRCONCAT($message,"%D0%BE")
         CASE("П")
            $message = STRCONCAT($message,"%D0%9F")
         CASE("п")
            $message = STRCONCAT($message,"%D0%BF")
         CASE("Р")
            $message = STRCONCAT($message,"%D0%A0")
         CASE("р")
            $message = STRCONCAT($message,"%D1%80")
         CASE("С")
            $message = STRCONCAT($message,"%D0%A1")
         CASE("с")
            $message = STRCONCAT($message,"%D1%81")
         CASE("Т")
            $message = STRCONCAT($message,"%D0%A2")
         CASE("т")
            $message = STRCONCAT($message,"%D1%82")
         CASE("У")
            $message = STRCONCAT($message,"%D0%A3")
         CASE("у")
            $message = STRCONCAT($message,"%D1%83")
         CASE("Ф")
            $message = STRCONCAT($message,"%D0%A4")
         CASE("ф")
            $message = STRCONCAT($message,"%D1%84")
         CASE("Х")
            $message = STRCONCAT($message,"%D0%A5")
         CASE("х")
            $message = STRCONCAT($message,"%D1%85")
         CASE("Ц")
            $message = STRCONCAT($message,"%D0%A6")
         CASE("ц")
            $message = STRCONCAT($message,"%D1%86")
         CASE("Ч")
            $message = STRCONCAT($message,"%D0%A7")
         CASE("ч")
            $message = STRCONCAT($message,"%D1%87")
         CASE("Ш")
            $message = STRCONCAT($message,"%D0%A8")
         CASE("ш")
            $message = STRCONCAT($message,"%D1%88")
         CASE("Щ")
            $message = STRCONCAT($message,"%D0%A9")
         CASE("щ")
            $message = STRCONCAT($message,"%D1%89")
         CASE("Ъ")
            $message = STRCONCAT($message,"%D0%AA")
         CASE("ъ")
            $message = STRCONCAT($message,"%D1%8A")
         CASE("Ы")
            $message = STRCONCAT($message,"%D0%AB")
         CASE("ы")
            $message = STRCONCAT($message,"%D1%8B")
         CASE("Ь")
            $message = STRCONCAT($message,"%D0%AC")
         CASE("ь")
            $message = STRCONCAT($message,"%D1%8C")
         CASE("Э")
            $message = STRCONCAT($message,"%D0%AD")
         CASE("э")
            $message = STRCONCAT($message,"%D1%8D")
         CASE("Ю")
            $message = STRCONCAT($message,"%D0%AE")
         CASE("ю")
            $message = STRCONCAT($message,"%D1%8E")
         CASE("Я")
            $message = STRCONCAT($message,"%D0%AF")
         CASE("я")
            $message = STRCONCAT($message,"%D1%8F")
         CASE(" ")
            $message = STRCONCAT($message,"%20")
           
         DEFAULT
            $message = STRCONCAT($message,$simvol)
      END_SWITCH
   END_CYC
   
   $str = HTTPGET (STRCONCAT("https://api.vk.com/method/messages.send?user_id=",$user_id,"&group_id=",$group_id,"&random_id=",$random_id,"&message=",$message,"&v=5.102&access_token=",$access_token))
   IF(STRPOS ($str, "response") > 0)
      $VK_message = 1
   else
      $VK_message = 0
      LOGWRITE ($str)
   END_IF
END_SUB



VK_message("Наше сообщение")
IF($VK_message)
   // Сообщение отправлено
else
   // Ошибка при отправке сообщения - смотрим лог
END_IF

HALT

Получаем сообщения так:

Code: (clickermann) [Select]
$access_token =""
$group_id =""
$user_id =""


$str = HTTPGET (STRCONCAT("https://api.vk.com/method/messages.getDialogs?group_id=",$group_id,"&v=5.102&access_token=",$access_token))
IF(STRPOS ($str, "response") > 0)
   $body = STRPOS ($str, "body")
   IF($body)
      // Есть сообщение
     
      $ns = $body+7
      $ks = STRPOS ($str, char(34), $ns)
      $komanda = STRCUT ($str, $ns, $ks-$ns)
     
      // Выводим сообщение в лог
      LOGWRITE ($komanda)
     
      // Затираем сообщение в памяти бота, чтобы он нам его в цикле не показывал.
      $str = HTTPGET (STRCONCAT("https://api.vk.com/method/messages.deleteConversation?user_id=",$user_id,"&group_id=",$group_id,"&v=5.102&access_token=",$access_token))
   END_IF
END_IF


WAITMS(100)
« Last Edit: October 25, 2019, 12:33:00 PM by Hito »
Я не ду... Потому и не бу...

komandirbk

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Re: Оповещения в VK API
« Reply #1 on: October 23, 2019, 04:37:42 AM »
Всё сделал правильно, по сути ничего сложного, но моментально ошибка при отправке сообщения. В чем проблема?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Оповещения в VK API
« Reply #2 on: October 23, 2019, 01:10:53 PM »
Всё сделал правильно, по сути ничего сложного, но моментально ошибка при отправке сообщения. В чем проблема?
Я только что строку добавил в скрипт. Запусти обновленный скрипт и скопируй ответ от сервера при ошибке из лога.
« Last Edit: October 23, 2019, 01:58:09 PM by Hito »
Я не ду... Потому и не бу...

komandirbk

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Re: Оповещения в VK API
« Reply #3 on: October 23, 2019, 09:54:45 PM »
А где взять этот лог?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Оповещения в VK API
« Reply #4 on: October 23, 2019, 11:25:50 PM »
А где взять этот лог?


Вы сам кликер вообще изучаете хотя бы минимально...?
Я не ду... Потому и не бу...

komandirbk

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Re: Оповещения в VK API
« Reply #5 on: October 24, 2019, 04:43:46 AM »
А где взять этот лог?


Вы сам кликер вообще изучаете хотя бы минимально...?

В логе кликера - пусто. Даже после вашего апдейта - в логе КЛИКЕРА - ничего нет. Дата и пустая строка

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Оповещения в VK API
« Reply #6 on: October 24, 2019, 11:13:39 AM »
А где взять этот лог?


Вы сам кликер вообще изучаете хотя бы минимально...?

В логе кликера - пусто. Даже после вашего апдейта - в логе КЛИКЕРА - ничего нет. Дата и пустая строка

В папку с кликером кинь две dll-ки  -  https://yadi.sk/d/hWk3k-Q2i6uTrA  и  https://yadi.sk/d/_gajbqM4iPuu6A
Я не ду... Потому и не бу...

Vir

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Оповещения в VK API
« Reply #7 on: October 24, 2019, 11:27:35 AM »
Quote
Через ВК так же удобно намутить пульт управления скриптами. Если кому нужно будет, то отпишите - объясню, как намутить пульт.
Как это сделать? Больше интересует как прочитать последнее сообщение от пользователя.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Оповещения в VK API
« Reply #8 on: October 24, 2019, 11:34:56 PM »
Quote
Через ВК так же удобно намутить пульт управления скриптами. Если кому нужно будет, то отпишите - объясню, как намутить пульт.
Как это сделать? Больше интересует как прочитать последнее сообщение от пользователя.
Добавил в шапку.
Я не ду... Потому и не бу...