Вероятная причина ошибки
Метод
users.get() можно вызывать с ключом одного из трёх типов:
- сервисный ключ (приложения)
- ключ сообщества
- ключ пользователя
в то время, как
users.search() можно вызывать только с ключом пользователя.
Раз
users.get()
срабатывает , а на
users.search()
возвращается ошибка токена, вероятнее всего используется токен Сообщества или Сервисный ключ приложения.
Что делать
Получите
ключ Пользователя. Для этого понадобится создать своё приложение ВК или использовать уже готовое. Специальных прав запрашивать не нужно, просто получить токен.
В запросе к
users.search()
для поиска только в городе N, понадобится найти сначала
id
этого города N в Справочнике городов ВК. Для этого есть метод
database.getCities() - клик по ссылке (внизу страницы) выполнит поиск и вернет несколько населенных пунктов, похожих на «Кукуево», у каждого свой
id
.
Итого, в метод
users.search()
вы передадите следующие параметры:
v=5.101
— версия API, обязательный
access_token=XXXXX
— токен Пользователя в любом приложении ВК
count=1000
— без этого параметра вернёт только 20 результатов
q=Олег
— поисковая строка
city=123
— id города Кукуево, полученный ранее в database.getCities()
sex=2
— мужской пол (необязательно)
age_from=18
— искомый Олег закончил школу
age_to=24
— наверное, искомый Олег ещё не получает пенсию