Как получить все товары сразу? Vk api

257
09 июля 2017, 14:27

Использую такой метод получения товаров, но т.к вк разрешает получать за раз только 200 товаров приходится снова использовать этот же код, только вручную прописывать смещение(offset) 200 и т.д, это занимает огромное кол-во времени с большой группой. Как можно оптимизировать код, чтобы парсило все товары без моего участия в смещении?(Прошу учесть, что просто сдвигать на 200 всегда не получится, т.к кол-во товаров не всегда делится на 200 и могут остаться не спаршенные товары)

    $h = file_get_contents("https://api.vk.com/method/market.get?owner_id=-$group&offset=$offset&count=200&access_token=$token&v=5.59");
$tov = $array['response']['count']; //получаю общее кол-во товаров.
            $array = json_decode($h,true); 
Answer 1

Вы можете использовать метод execute для выполнения одновременно до 25 запросов. То есть, до 5 000 товаров Вы сможете получать за раз. Если нужно более - введите данный метод в цикл.

Вот пример кода для execute для вывода до 2 400 записей со стены сообщества:

var owner_id = Args.owner_id;
var posts_num = parseInt(Args.count);
var offset = parseInt(Args.offset);
//если меньше 100 - 1 запрос и на выход
if (posts_num <= 100) {
    return API.wall.get({"owner_id": owner_id, "count": posts_num, "offset": offset}).items;
}
//если больше 2500 - ничего не выйдет, переопределяем переменную на 2500
if (posts_num > 2500) {
    posts_num = 2500;
}
var out = {};
while (out.length < posts_num) {
    var count = 100;
    if (posts_num < 100) {
        count = posts_num;
    }
    out = out + API.wall.get({"owner_id": owner_id, "count": count, "offset": offset}).items;
    offset = offset + count;
};
return out;
READ ALSO
Как в процессе работы кода заставить его изменить имеющиеся ссылку?

Как в процессе работы кода заставить его изменить имеющиеся ссылку?

Нужно изменить вот эту ссылку в коде из переменной

212
Выделение числа (int)

Выделение числа (int)

Мне посоветовали отделять число от руб способом int, но сейчас появилась проблемаЕсли число записано как 1 200, то способ не работает

216
форматирование текста telegram bot на php

форматирование текста telegram bot на php

пишу телеграм бота на phpв telegram bot api есть опция parse_mode которая форматирует текст как html или markdown

695
шорт код switch

шорт код switch

Здравствуйте как правильнее написать такой код

190