Задать вопрос
@IgorusKr

Одноклассники почему приходят пустые ответы от GET graph.user.updates при long polling подписке?

Пишу бота для Одноклассников на C#, использую long polling подход. Метод подписки возвращает {"success":true}. После чего сразу вызываю метод получения обновлений, предварительно написав в группу. О том, как я выполняю подписку можно почитать в ответе на мой предыдущий вопрос.

Сами обновления получаю следующим образом:
var @params = new
{
    //marker = "",
    types = new[] { "MESSAGE_CREATED", "MESSAGE_CALLBACK", "CHAT_SYSTEM" },
    //count = 50,
    //timeout = 15,
    commit = false,
};

string baseUrl = "https://api.ok.ru/graph";
string url = baseUrl + "/me/updates?access_token=" + token;
using HttpClient httpClient = new();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);
request.Content = new StringContent(JsonConvert.SerializeObject(@params));
                                    //Encoding.UTF8,
                                    //"application/json");

var response = await httpClient.SendAsync(request)
    .ContinueWith(responseTask => responseTask.Result.EnsureSuccessStatusCode());

string contentJson = await response.Content.ReadAsStringAsync();


Из статьи в документации не вполне понятно, какие аргументы нужно передавать, так что основывался на статье про подписку. В результате я получаю:

{"updates":[],"marker":"603980ff4d9a8"}

Поскольку приходит пустой массив, а не сообщение об ошибке, я делаю вывод, что адрес и параметры верные (хотя, если не передавать вообще никаких параметров, ответ будет тем же). Может я пропустил какие-то настройки (у ВК было такое, что нужно включить long polling в настройках группы, но тут я ничего похожего не нашёл) или ещё что-то. Подскажите, если кто знает, заранее спасибо!
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@IgorusKr Автор вопроса
Разобрался! Я сам писал в сообщения группы, но поскольку я был админом, сообщения автоматически помечаются прочитанными. То же самое и с модераторами. Но если писать с другого аккаунта, не участвующего в модерации (роль "Редактор" и ниже), то сообщения ждут, пока их прочтут модераторы, и могут быть получены по long polling.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы