total4c
@total4c
Говнокодер

Как сделать бота VK, который получает цифровой ID из ссылки и отправляет пользователю?

Добрый день, это обращение к программистам, знающие Python и VKApi

Не подскажете ли вы, как создать бота, а именно команду, которая будет принимать ссылки типа: vk.com/ и https://vk.com
А далее обрабатывать их и выдавать цифровой ID пользователя ВКонтакте, сам пытался что-то сделать, но в итоге потерял просто 6 часов
Пример:

Пользователь вводит команду: ID vk.com/durov

Ответ бота: ID пользователя: 1

P.S Бот должен отвечать в беседах
  • Вопрос задан
  • 1851 просмотр
Решения вопроса 1
deepblack
@deepblack Куратор тега Python
У VK API есть метод https://vk.com/dev/users.get

  1. скармливаешь ему screen_name
  2. получаешь ID пользователя и дополнительный поля (если надо)
5ce61aa65c5d4689497433.png
spoiler
Тут дел минут на десять, из которых 5 это выпить кофе
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
1. Используешь, к примеру, библиотеку vk_api (Установка pip install vk_api).
2. Импортируешь в программе: import vk_api
3. Начинаем работать с API вконтакте:
login, password = 'ВАШ_ЛОГИН', 'ВАШ_ПАРОЛЬ'
vk_session = vk_api.VkApi(login, password)
try:
    vk_session.auth()
except vk_api.AuthError as error_msg:
    print(error_msg)
    return

vk = vk_session.get_api()

4. Отправляем запрос и выдираем из него ID (вставляй его на место этой строки id1 = vk.method("users.get")["id"]):
id_user = vk.users.get(user_ids = id1)[0]['id']

Надеюсь не сильно сумбурно )))
Ответ написан
Комментировать
@SD4RK
1. Из ссылки оставляем только короткое имя или id страницы
2. Передаём то, что получили в метод utils.resolveScreenName, или users.get
3. ???

примерный код:
import vk_api

vk = vk_api.VkApi(token="ТОКЕН")

def resolve_url(url):
    # url - 'vk.com/durov'
    screen_name = url.split('/')[-1]
    # screen_name - 'durov'
    id_ = vk.method('users.get', {'user_ids': screen_name})[0]['id']
    # id_ - 1
    return id_
Ответ написан
Комментировать
tkovacs
@tkovacs
веб мастер
import vk_api

vk_session = vk_api.VkApi('номер', 'пароль')
vk_session.auth()
vk = vk_session.get_api()

ids = vk.utils.resolveScreenName(screen_name='durov')
print(ids['object_id'])
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы