Продолжаю закреплять выученное своим горьким опытом и методом тыка по теме vk execute и python, наконец мои рученьки-загребученьки добрались до последнего оплота и просто приятного и некогда непонятного метода, и также к хранению процедур в приложении! Ура.
В прошлом посте я рассказывал как передать строку с vk script сразу таки прям по воздуху, сырую и некрасивую, сегодня мне покорился вариант “хранимые процедуры” который позволяет тело скрипта хранить в приложении вк, а передавать по “воздуху” только необходимые и меняющиеся аргументы: id группы, id поста и так далее.
Ближе к делу:
- каждая переменная, которая будет записываться переданным аргументом должна иметь такой вид: Args.var_name
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 который позволяет быстрее отдебажить код, если в нем закрался шлак;
- это просто офигенно, потому что код остается чистым и понятным – уходят аргументы – возвращаются массивы, что может быть лучше?