Как получить верный запрос из VK API сообществ?

Доброго времени суток! Столкнулся с такой проблемой, при работе с VK API
Использую API для сообществ. Необходимо вытянуть диалоги в которых есть непрочитанные сообщения.
Есть функция:
public function request($method,$params=array())
    {
        $uri = 'https://api.vk.com/method/'.$method;
        $params['access_token'] = $this->token;
        $params['v'] = '5.53';
            return json_decode(file_get_contents($uri.'?'.http_build_query($params)),true);
    }

public function unread()
{ 
    return  $response = $this->request('messages.getDialogs',
[
        'count'=>'20',
        'unread'=>'1',
        'offset'=>'-20',
        'start_message_id'=>1
]);
    }


При вызове unread(), результатом чего получаю ответ от сервера VK
[
  "response" =>  [
    "count" => 12
    "real_offset" => 12
    "unread_dialogs" => 1
    "items" => []
  ]
]


В items должно содержаться как раз диалог с непрочитанным сообщением,о чем говорит unread_dialogs, но он пуст...

Хорошо, идем в Postman и проверим запрос там.
Создаем ссылку:
https://api.vk.com/method/messages.getDialogs?v=5.53&access_token={API_TOKEN}&count=20&offset=-20&unread=1&start_message_id=1


Проставляем все значения, которые использовались выше, получаю ответ:
{
  "response": {
    "count": 1,
    "real_offset": -8,
    "items": [
      {
        "unread": 1,
        "message": {
          "id": 150,
          "date": 1474366312,
          "out": 0,
          "user_id": 01111111,
          "read_state": 0,
          "title": " ... ",
          "body": "проверка"
        },
        "in_read": 149,
        "out_read": 149
      }
    ]
  }
}


Как видно все отлично, что требовалось, то и получил.
А теперь вопрос, что я делаю не так, и почему такое различие при вызове?
  • Вопрос задан
  • 904 просмотра
Пригласить эксперта
Ответы на вопрос 1
Kozack
@Kozack
Thinking about a11y
1. Попробуйте прописать вот так:
public function unread()
{ 
    return  $response = $this->request('messages.getDialogs', array(
        'count'=>'20',
        'unread'=>'1',
));
Ответ написан
Ваш ответ на вопрос

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

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