Jump to content
  • 0

Неправильная работа users.search Вконтакте API


bryknyk
 Share

Question

Столкнулся с любопытным случаем.

 

Задача проста: получить объекты пользователей по строке поиска.

 

Решение: метод users.search. Для него есть параметр "q" - question, query от чего они там сокращали.

 

Результат: возвращается у меня топ пользователей или случайный их набор, независимо от строки поиска. Распечатал запрос, выполнил в браузере - тоже самое, все равно идет топ. Проверил запрос, вроде все на месте -  параметр, кодированная с латиницы строка, токен. К счастью, проблема нашлась почти сразу и была очень глупой. Символы "q" и "g" при беглом взгляде на строку запроса (маленький шрифт) выглядят похоже. Как я умудрился туда засунуть "g" - не знаю, но факт - ошибки нет и ответ есть. Наверное, ближе к вечеру с включением ступора мозга это могло бы серьезно напрячь, ведь результаты-то запроса идут и логично, что сервер сообщит о неверном параметре))

В данном случае у меня было поле класса "g". Просто заменив его на правильный символ из вкapi ide быстро подсветила ошибки и все стало ясно, а вот если бы я формировал запрос из сегментов - нужно было бы заменить, сделать запрос и посмотреть еще ответ. С "q" все стало на свои места и вернулись искомые пользователи.

Мда, что может вытворять внимательность и как легко затупить даже на ровном месте :unsure:

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
могли б сделать что если приходит неизвестный параметр, то в ответе указывать что ошибка.

вот-вот. Я ожидал ошибки с их кодом 8 - неверный запрос. С другой стороны, возможно это прикол или диверсия. Например, глагол "gut" вроде что -то связано с ненасытностью или greedy gut - обжора вроде. и т.п. При запросе с g счетчик найденных возвращается в ответе   "count":14758496. Мол, хочешь много? получи) Хотя все равно за рамки лимита не выйти. Конечно, это фантастическое бредовое предположение, однако т.к. в вк одни юмористы сидят... черт их знает.

Edited by bryknyk
Link to comment
Share on other sites

  • 0

юмористы юмористами, но вот работал с api facebook,vk и odnoklassniki, и почему то vk api показалось самым удобным.

хм может g принимается как global ?) но опять же в api не описано ))

Edited by Galaxy
  • Like 1
Link to comment
Share on other sites

  • 0
м может g принимается как global ?) но опять же в api не описано ))

я потестил, все равно какой символ вставлять, можно стих туда вставить) Вставил "n" . Но счетчик уже "count":14760102)) А жаль. Романтический ореол смысла в этой ошибке просто растворился. Наверное, они просто не ожидали, что на земле есть люди которые смогут попутать одну букву как я))

Edited by bryknyk
Link to comment
Share on other sites

  • 0
и почему то vk api показалось самым удобным.

сейчас как раз снова напоролся на одну мелочь, которая всегда портила мне массу крови. Насколько я помню сущности вк, то проблема в одной: при передачи полей профиля, которые нужно вернуть есть поле "schools". Возвращается массив объектов школ. Вопрос в том, что одно поле этого объекта:

 

  • class — буква класса;
    строка

А class является зарезервированным словом, такое свойство не создать) и просто мапить на объект  не получается, а хочется.

 

 

Я думаю, что стоит спросить у вконтакта — у них есть багтрекер и они даже отвечают там.

логично, но теперь это риск деаномизации. Я, как замороченный на безопасности - такого не люблю. Легко можно глянуть туда - кто разместит эту тему, немного умственной и не очень работы и уже можно кидать мне продуманную, тагетированную фишинговую ссылку, на которую я могу и клюнуть. Это раз. Во вторых от 16 и от 1 марта там висит мессага об недочете в документации этого метода о правах доступа. Никаких изменений там не сделано. Поэтому, делаю вывод - ложили они кое-что на эти предложения :unsure:  Кроме того, там есть и другие недочеты - например, допустимые поля там не полные, полностью косвенно они указаны в описаниях объекта user. Но никому енто не нужно. Так что суммируя - это бесполезная трата времени на фоне риска получить себе проблем, имхо.

Link to comment
Share on other sites

  • 0

 

и почему то vk api показалось самым удобным.

сейчас как раз снова напоролся на одну мелочь, которая всегда портила мне массу крови. Насколько я помню сущности вк, то проблема в одной: при передачи полей профиля, которые нужно вернуть есть поле "schools". Возвращается массив объектов школ. Вопрос в том, что одно поле этого объекта:

 

  • class — буква класса;

    строка

А class является зарезервированным словом, такое свойство не создать) и просто мапить на объект  не получается, а хочется.

 

 

 

 

Я думаю, что стоит спросить у вконтакта — у них есть багтрекер и они даже отвечают там.

логично, но теперь это риск деаномизации. Я, как замороченный на безопасности - такого не люблю. Легко можно глянуть туда - кто разместит эту тему, немного умственной и не очень работы и уже можно кидать мне продуманную, тагетированную фишинговую ссылку, на которую я могу и клюнуть. Это раз. Во вторых от 16 и от 1 марта там висит мессага об недочете в документации этого метода о правах доступа. Никаких изменений там не сделано. Поэтому, делаю вывод - ложили они кое-что на эти предложения :unsure:  Кроме того, там есть и другие недочеты - например, допустимые поля там не полные, полностью косвенно они указаны в описаниях объекта user. Но никому енто не нужно. Так что суммируя - это бесполезная трата времени на фоне риска получить себе проблем, имхо.

 

Дуров верни стену :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By KatiaBeing
      Подскажите пожалуйста, как правильно сделать кастомный список стран используя API.
      Вот fetch код:
       
      const countryList = document.querySelector('.form-list.country'); fetch('https://restcountries.com/v3.1/all').then(res => { return res.json(); }).then(data => { let output = ''; data.forEach(country => { output += `<li class="form-item" data-value="${country.name.common}">${country.name.common}</li>`; countryList.innerHTML = output; }); }).catch(err => { console.log(err); }); полный код html, css, js Во втором списке "Country" список формируется, но название страны не поставляется в форму, а атрибут "data-value="" " в инпут ниже. В первом списке "Guests Amount" все ок, т.к. данные прописаны в html. Нужен такой же, но со странами.
      Сразу скажу, с тегом select все работает, но мне нужна стилизованная выпадашка. Заранее спасибо.
    • By Eugen2k
      Доброго времени суток!
      Суть проекта: очень кратко: что-то вроде аггрегатора хостинг провайдеров. На самом деле это только звучит не особо, но по факту все намного интересней. Проект готов на 20-25%. В команде есть сильный и опытный back-end разработчик, дизайнер и маркетолог-идеолог  Но у нас демократия: каждый делится своими мыслями как сделать продукт лучше.
      Есть потенциальные клиенты, которые готовы опробовать продукт и в дальнейшем им пользоваться, покупая ежемесячную подписку.
      Главная задача: выход на минимально живой продукт. Как только мы выйдем на MVP будет понятно насколько проект коммерчески успешен или неуспешен.
      В случае успеха (когда продажи пойдут) начинаем этап привлечения инвестиций. Кандидаты-инвесторы есть.
      В случае провала - расходимся и каждый может использовать проект в качестве портфолио, так как при любом исходе им будут пользоваться.
      Кого ищем: front-end разработчик с опытом работы с:
      - React (Redux)
      - Django
      - RESTApi
      - SASS
      - Git
      Желателен опыт работы от 2-3 лет и возможность посвящать проекту хотя бы 10-12 часов в неделю.
      Условия работы:
      - доля в компании 5-10%
      - доля в компании менее 5%, но с оплатой, небольшой, так как мы еще только проверяем гипотезу и платить будем из своего кармана.
      Этот проект может быть интересен тем, кто хочет влиться в интересный проект, возглавить его и научиться чему-то новому или просто взять долю и получать с нее доход, либо продать.
      Также, тем, кому нужно интересное портфолио.
      Если есть интерес, прошу свяжитесь со мной: https://t.me/Eugen2k
    • By NOCaut
      Стала задача написать отправку писем всем контактам скайпа.
      нашел библиотеку Skype4COM. Письмо в скайп отправляется на половину, оно появляется у меня в отправленных, но светится серым, как будто готовится к отправки
       
       
    • By WhatIsHTML
      Привет всем. У меня проблемы с простой задачей.

      Есть одностраничный сайт. Пользователь нажимает на ссылку меню, которая обрабатывается функцией Js. Эта функция асинхронно загружает содержимое страницы и изменяет URL с помощью history.pushState ().
      Например было "example.com" => после клика "example.com/page1"

      Затем пользователь обновляет страницу, но такого файла, не существует на сервере.
      Как решить эту проблему?

      Вот пример
      Вот страница с пояснениями, но примера обработки обновления страницы там нет.  У них в примере, после обновления открывается страница с тем же контентом, что было до перезагрузки и с тем же url.
      Говорят, что нужно решать как-то с помощью php, но я затрудняюсь.
    • By kattiperk
      Здравствуйте.
      Есть необходимость создать смену контента в зависимости от местоположения пользователя, а также передвинуть значок на карте.
      С контентом мне понятно, вроде ничего сложного. Но с картой ни разу не занималась, хочу спросить хорошее решение для этого. Использую Google Maps Api.
      Еще, есть ли возможность менять все вместе - и контент, и карту? CMS - Wordpress.
      http://wingchung.com.ua/
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy