vk execute + args + python + requests

py_vk
Продолжаю закреплять выученное своим горьким опытом и методом тыка по теме vk execute и python, наконец мои рученьки-загребученьки добрались до последнего оплота и просто приятного и некогда непонятного метода, и также к хранению процедур в приложении! Ура.

В прошлом посте я рассказывал как передать строку с vk script сразу таки прям по воздуху, сырую и некрасивую, сегодня мне покорился вариант “хранимые процедуры” который позволяет тело скрипта хранить в приложении вк, а передавать по “воздуху” только необходимые и меняющиеся аргументы: id группы, id поста и так далее.

Ближе к делу:

  • каждая переменная, которая будет записываться переданным аргументом должна иметь такой вид: Args.var_name

VK_proc

var comments = API.wall.getComments(
    {"owner_id":(Args.owner_id),
     "post_id":(Args.post_id),
     "need_likes":"1",
     "offset":"0",
     "count":"100",
     "sort":"asc",
     "preview_length":"1",
     "extended":"0",
     "v":"5.27"});
var comments_cnt = comments.count;
comments = comments.items;
var offset_comments = 100;
while (offset_comments < comments_cnt)
    {comments = comments + API.wall.getComments(
        {"owner_id":(Args.owner_id),
         "post_id":(Args.post_id),
         "need_likes":"1",
         "offset":(offset_comments),
         "count":"100",
         "sort":"asc",
         "preview_length":"1",
         "extended":"0",
         "v":"5.27"}
    ).items;
offset_comments = offset_comments + 100;};
return comments;

 

на своей стороне достаточно собрать запрос такого вида:

r = requests.post('https://api.vk.com/method/execute.wall_getComments?owner_id='+owner_id+'&post_id='+post_id+'&access_token='+token)

Это вариант для python там выше каждая переменная из этой строки назначена соответственно.

Далее чисто отсебятина:

Вот и все епта, куча времени уходит на то, чтобы переварить долбанные хабровские посты и прочие форумы говнокодеров, когда достаточно просто написать пару строк примера, и все станет ясно.

Надеюсь мой пример сэкономит вам время.

Почему лучше “хранить процедуры”?

  • не нужно каждый раз писать пачку VK Script для каждого частного случая;
  • хранимый код может быть использован с любыми аргументами, все запросы просто будут менять аргументы в зав. от группы-цели;
  • не нужно конвертировать сырой запрос с VK Script через энкодилки, чтобы передать это через HTTP;
  • в хранимых процедурах есть примитивный IDE который позволяет быстрее отдебажить код, если в нем закрался шлак;
  • это просто офигенно, потому что код остается чистым и понятным – уходят аргументы – возвращаются массивы, что может быть лучше?

 

 

 

About trianglesis

Александр Брюндтзвельт - гений, филантроп, 100 гривен в кармане. Этот блог - "сток" моих мыслей и заметок. Достаточно одного взгляда на него, чтобы понять, что такой же бардак творится у меня в голове. Если вам этот бардак интересен - милости прошу.
Bookmark the permalink.