Как определить, за какой вариант опроса проголосовал каждый пользователь?

Существует открытый для всеобщего обозрения пост с опросом. Мне необходимо получить список пользователей, проголосовавших за каждый ответ. Данная информация открыта и доступна для просмотра с клиента. Я ожидал, что существует поле с ID пользователей, или метод, который позволяет их получить, однако в документации ничего подобного не нашел.


Ответы (1 шт):

Автор решения: Maksim Drobyshev

На самом деле такая возможность есть, вот пример кода, который получает списки id всех пользователей, проголосовавших за каждый ответ.

    UserActor userActor = new UserActor(123, "token");
    int pollId = 1234;
    GetByIdResponse poolInfoResponse = vkApiClient.polls()
            .getById(userActor, pollId)
            .execute();

    List<GetVotersResponse> votersResponses = vkApiClient.polls()
            .getVoters(userActor, pollId, poolInfoResponse.getAnswerIds())
            .execute();
    for (GetVotersResponse votersRespons : votersResponses) {
        System.out.printf("%s voted for: %d%n", votersRespons.getUsers().getItems(), votersRespons.getAnswerId());
    }

Более подробно можно посмотреть в исходниках SDK: https://github.com/VKCOM/vk-java-sdk/blob/564a64e1c95ae44ce2df9a2c3db6c838970bbc33/sdk/src/main/java/com/vk/api/sdk/queries/polls/PollsGetVotersQuery.java

→ Ссылка