Twilio Chat API - получить список сообщений с нумерацией страниц (pageNo, pageLimit) - PullRequest
0 голосов
/ 18 января 2019

Я не могу получить список сообщений, используя pageNumber и pageSize. Он возвращает все результаты каждый раз. Есть ли способ запросить данные по pageSize и pageNumber.

twilioClient.chat.services(TWILIO_CHAT_SERVICE_SID)
    .channels(req.params.id)
    .messages
    .list({
        pageSize: 2,
        page: 2
    }, (error, messages) => {
        if (error) {
            return res.status(error.status).json({
                message: 'Problem in getting messages',
                error: error
            });
        }

        if (Utility.isEmptyObject(messages)) {
            return res.status(404).send('Messages not found');
        }

        res.status(200).json({
            message: 'Messages retrieved sucessfully',
            docs: messages
        });
    });

Я бы хотел запросить результаты по pageSize и pageNumber. Между тем, если я отправляю вызов REST API, он возвращает результаты с pageSize, но здесь также не работает pageNumber.

let limitCount = parseInt(req.query.limit > 0 ? req.query.limit : 10); // limitValue
let pageNo = parseInt(req.query.pageNo > 0 ? req.query.pageNo : 0);

let options = {
    method: 'GET',
    url: 'https://chat.twilio.com/v2/Services/IS/Channels/' +
        'CH2f/Messages?Page=' + pageNo + '&PageSize=' + limitCount,
    headers:
    {
        'cache-control': 'no-cache',
        Authorization: 'Token'
    }
};

request(options, function (error, response, body) {

    console.log(body);

    if (error) {
        //console.error("There was an error loading the channels.", error);
        return res.status(error.status).json({
            message: 'Problem in getting messages',
            error: error
        });
    }

    if (Utility.isEmptyObject(response)) {
        return res.status(404).send('Messages not found');
    }

    res.status(200).json({
        status: 'Messages retrieved sucessfully',
        messages: JSON.parse(body)
    });
});

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 19 января 2019

Евангелист разработчика Twilio здесь.

Ресурсы Twilio не поддерживают нумерацию страниц на основе номера.Вместо этого страница данных будет содержать свойства next_page_uri и previous_page_uri.Вы можете контролировать размер страницы с помощью параметра PageSize.

При использовании библиотек вы можете настроить их автоматическое разбиение на страницы.Например:

twilioClient.chat.services(TWILIO_CHAT_SERVICE_SID)
  .channels(req.params.id)
  .messages
  .list({
    limit: 400,
    pageSize: 100
  });

в конечном итоге вызовет API 4 раза, чтобы вернуть 400 сообщений.

Подробнее о разбивке по страницам ресурсов Twilio можно узнать в документации.

...