Как создать скрипт который будет подключаться к api vk

triazov

Активный
Автор темы
266
58
Версия MoonLoader
.027.0-preview
Как создать скрипт который будет подключаться к api vk
Lua script samp который будет в вк писать через api тебе сообщение инфу из скрипта типа бота своего
 

RedHolms

Известный
Проверенный
619
366
Lua:
local effil = require 'effil'

uriFormat = function(params)
   local uri = ''
   local prefix = ''

   for k, v in pairs(params) do
      uri = uri .. prefix .. tostring(k) .. '=' .. tostring(v)
      prefix = '&'
   end

   return uri
end

do
   local _thread_worker = function(method, url, args)
      local requests = require 'requests'
      local success, result = pcall(requests.request, method, url, args)
      if success then
         result.json, result.xml = nil, nil
         return { true, result }
      else
         return { false, result }
      end
   end

   makeRequest = function(method, url, args, successHandler, failHandler)
      local request_thread_runner = effil.thread(_thread_worker)
      lua_thread.create(function(method, url, args, successHandler, failHandler)
         local request_thread = request_thread_runner(method, url, args)

         local status, err
         while not err and status ~= 'completed' do
            status, err = request_thread:status()
         wait(0) end

         if err then
            return failHandler(0, err)
         else
            if status ~= 'completed' then
               return failHandler(1, status)
            end

            local retval = request_thread:get()
            local request_success, request_retval = retval[1], retval[2]

            if not request_success then
               return failHandler(2, request_retval)
            end

            request_retval.json = function(self)
               return decodeJson(self.text)
            end

            return successHandler(request_retval)
         end
      end, method, url, args, successHandler, failHandler)
   end
end

пример

!!! пример с api яндекса, переделай под вк, не надо просто копипастить !!!

Код:
makeRequest('POST', "https://iam.api.cloud.yandex.net/iam/v1/tokens", {
      data = encodeJson({
         ["yandexPassportOauthToken"] = settings.yandex_token
      })
   },
   function(response)
      if response.status_code == 401 then
         print("Failed to init IAM: auth error")
         print("response: ", response.text)
         return
      elseif response.status_code ~= 200 then
         print("failed to init IAM: invalid status code")
         print("status code: ", tostring(response.status_code))
         print("response: " , response.text)
         return
      end

      local json = response:json()
      if json then
         yandex.iam_token = json["iamToken"]
         print("iam initialized")
      end
   end,
   function(err_code, err_info)
      print("failed to init IAM: request error")
      print("code: ", err_code)
      print("info: ", tostring(err_info))
   end)
 

RedHolms

Известный
Проверенный
619
366