- 362
- 128
Короче, я не самый лучший гайдер, но таких гайдов именно с ахк я не нашел.
В общем, вырезали из Lani Soft Report функции для отправки и чтения сообщений.
Перейдем же к гайду.
Создание и настройка группы ВК:
Первое что нам необходимо сделать - создать группу ВК, надеюсь все знают как это делается.
Далее идем в настройки группы и в пункте "Сообщения" и включаем их.
После в пункте настройки выбираем подпункт "Работа с API".
Жмем на кнопку "Создать Ключ", ставим разрешение на доступ к сообщениям сообщества и нажимаем "Создать"
После подтверждаем создание ключа через номер или телефон, который привязан к ВК.
После подтверждения вы увидите ключ и его права, ключ необходимо сохранить или записать.
Номер страницы:
Далее нам необходимо узнать свой номер страницы, узнать его можно через настройки нажав в пункте "адрес страницы" кнопку "Изменить" и вы увидите ваш адрес страницы его тоже записываем.
АХК:
Создаем новый .ahk скрипт и заходим в его редактирование.
Нам нужно добавить 2 функции:
Функция для отправки сообщения человеку:
Функция для чтения сообщений от человека:
Добавляем их в начало кода и теперь нам пригодятся данные которые мы добыли в ВК.
В самое начало кода прописываем 3 переменные -
Заполняем сови данные - ключ, который мы взяли из группы и ваш id Вконтакте.
Перейдем к использованию функций.
vk_send:
Для отправки сообщения человеку необходимо использовать функцию vk_send()
Например:
После нажатия клавиши F2 в ВК нам приходит такое сообщение:
А, нихуя не приходит, нужно сначала самому написать в группу! Чтобы у нее были права писать нам!
И так, после того как мы написали и снова нажали F2, нам приходит такое сообщение:
Можно ещё сделать например форму обратной связи:
И что бы мы не написали, оно будет отправлено.
vk_get:
Ну и собственно перейдем к чтению сообщений.
Для этого нужно использовать функцию vk_get()
Код выглядит примерно так:
Если в группу приходит сообщение с текстом равным "!test arg", то оно отправит нам аргумент.
Ну собственно, на этом всё, если этот гайд был вам полезен, не забудьте нажать отметку "нравиться".
В общем, вырезали из Lani Soft Report функции для отправки и чтения сообщений.
Перейдем же к гайду.
Создание и настройка группы ВК:
Первое что нам необходимо сделать - создать группу ВК, надеюсь все знают как это делается.
Далее идем в настройки группы и в пункте "Сообщения" и включаем их.
После в пункте настройки выбираем подпункт "Работа с API".
После подтверждения вы увидите ключ и его права, ключ необходимо сохранить или записать.
Номер страницы:
Далее нам необходимо узнать свой номер страницы, узнать его можно через настройки нажав в пункте "адрес страницы" кнопку "Изменить" и вы увидите ваш адрес страницы его тоже записываем.
Создаем новый .ahk скрипт и заходим в его редактирование.
Нам нужно добавить 2 функции:
Функция для отправки сообщения человеку:
AutoHotKey:
vk_send(textvk)
{
text := RegExReplace(text, "%", "%25") ; first string
text := RegExReplace(text, "\+", "%2B")
text := RegExReplace(text, "#", "%23")
text := RegExReplace(text, "&", "%26")
text := RegExReplace(text, "`n", "%0A")
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", proxy "api.vk.com/method/messages.send?user_id=" vkid "&message=" textvk "&v=5.52&access_token=" token)
try
HTTP.Send()
return
}
AutoHotKey:
vk_get()
{
ComObjError(false)
HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HTTP.Open("POST", proxy "api.vk.com/method/messages.getHistory?count=1&user_id=" vkid "&access_token=" token "&v=5.85", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36")
HTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
HTTP.Send()
HTTP.WaitForResponse()
jsontext := % HTTP.ResponseText
JSONvar =
(LTrim Join
%jsontext%
)
htmldoc := ComObjCreate("htmlfile")
Script := htmldoc.Script
Script.execScript(" ", "JScript")
oJSONvar := Script.eval("(" . JSONvar . ")")
text := % oJSONvar.response.items.0.text
date := % oJSONvar.response.items.0.date
from_id := % oJSONvar.response.items.0.from_id
fwd_messages_0 := % oJSONvar.response.items.0.fwd_messages.0.text
return Object("text", text, "date", round(date), "id", from_id, "replyText", fwd_messages_0)
}
В самое начало кода прописываем 3 переменные -
AutoHotKey:
global vkid := "ваш id"
global token := "ваш ключ"
global proxy := "https://vk-api-proxy.xtrafrancyz.net/_/"
Перейдем к использованию функций.
vk_send:
Для отправки сообщения человеку необходимо использовать функцию vk_send()
Например:
AutoHotKey:
[/CENTER]
global vkid := ""
global token := ""
vk_send(textvk)
{
text := RegExReplace(text, "%", "%25") ; first string
text := RegExReplace(text, "\+", "%2B")
text := RegExReplace(text, "#", "%23")
text := RegExReplace(text, "&", "%26")
text := RegExReplace(text, "`n", "%0A")
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "http://api.vk.com/method/messages.send?user_id=" vkid "&message=" textvk "&v=5.131&random_id=0&access_token=" token)
bar = "http://api.vk.com/method/messages.send?user_id=" vkid "&message=" textvk "&v=5.131&random_id=0&access_token=" token
try
HTTP.Send()
return
}
f2::
vk_send("blast.hk")
return
[CENTER]
А, нихуя не приходит, нужно сначала самому написать в группу! Чтобы у нее были права писать нам!
И так, после того как мы написали и снова нажали F2, нам приходит такое сообщение:
Можно ещё сделать например форму обратной связи:
AutoHotKey:
InputBox,vksend, Нашли баг? Отпишите мне!
vk_send(vksend)
sleep 100
MsgBox, Ваше обращение отправлено!
return
И что бы мы не написали, оно будет отправлено.
vk_get:
Ну и собственно перейдем к чтению сообщений.
Для этого нужно использовать функцию vk_get()
Код выглядит примерно так:
AutoHotKey:
f2::
SetTimer, checkMessage, 250
return
checkMessage:
if not ((vk_message := vk_get()) and (vk_message.date != last_date))
{
return
}
last_date := vk_message.date
message := vk_message.text
if RegExMatch(message, "i)^!test (.*)$", mes)
{
msgbox, %mes1%
}
return
Ну собственно, на этом всё, если этот гайд был вам полезен, не забудьте нажать отметку "нравиться".
Последнее редактирование: