1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите VK API и сообщения с LongPoll

Тема в разделе "Разработка плагинов для новичков", создана пользователем LuckyZeeRo, 24 фев 2019.

Статус темы:
Закрыта.
  1. Автор темы
    LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Столкнулся с проблемами после перехода с неофф библиотеки для работы с сообщениями сообщества вк на офф (нужно было еще другие фичи юзать). Теперь не могу нормально настроить LongPoll для перехвата сообщения в группу.

    Что я имел по началу (как было в туториалах вк и примерах кода):
    Код:
    TransportClient transportClient = HttpTransportClient.getInstance();
    VkApiClient vk = new VkApiClient(transportClient);
    GroupActor groupActor = new GroupActor(groupId, accessToken);
    
    vk.groups().setLongPollSettings(groupActor)
            .enabled(true)
            .messageNew(true)
            .execute();
    
    // Здесь MessageListener extends CallbackApiLongPoll
    MessageListener listener = new MessageListener(vk, groupActor, processor);
    listener.run();
    При таком раскладе получаю:
    Код:
    Exception in thread "main" com.vk.api.sdk.exceptions.ApiAccessException: Access denied (15): Access denied: no access to call this method
    
        at com.vk.api.sdk.exceptions.ExceptionMapper.parseException(ExceptionMapper.java:37)
        at com.vk.api.sdk.client.ApiRequest.executeWithoutRetry(ApiRequest.java:92)
        at com.vk.api.sdk.client.ApiRequest.execute(ApiRequest.java:67)
        at Test.main(Test.java:27)
    При этом хочу уточнить, что accessToken и groupId абсолютно верные и работало все на старой либе, так же я дополнительно включил в настройках группы LongPoll 5.50 и добавил разрешения на сообщения.

    Теперь немного порылся на других источниках и немного поменял подход:
    Код:
    TransportClient transportClient = HttpTransportClient.getInstance();
    VkApiClient vk = new VkApiClient(transportClient);
    GroupActor groupActor = new GroupActor(groupId, accessToken);
    
    GetLongPollServerResponse longPollServerResponse = vk.groups().getLongPollServer(groupActor).execute();
    String key = longPollServerResponse.getKey();
    String server = longPollServerResponse.getServer();
    int ts = longPollServerResponse.getTs();
    Опять та же ошибка на "execute()".

    Два вопроса:
    1. Как исправить эту ошибку, что я делаю не так?
    2. Что делать дальше после этого кода (ведь первый способ я так понял не то), как прикрепить слушатель сообщений.
     
  2. Автор темы
    LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    О GoodCoder Adora, спасибо! :D
    Даже не подумал было об этом, ибо изначально в правах добавил ток сообщения сообщества, а управление им не делал. При этом старая либа как то работала.

    Проблема решена.
    P.S. Рабочий код был в первом варианте.
     
Статус темы:
Закрыта.

Поделиться этой страницей