Как найти ид пользователя ВК?
Доброго суток!
Пишу на языке JavaScript бота для ВКонтакте. Бот должен получать данные из нового комментария и отправлять эти данные в беседу. Код выглядит так:
vk.updates.use(async (context, next) => {
if (context.is('board_post_new')) {
const newCommentText = context.text;
const ids = context.id;
const authorId = context.from_id; // Use context.object.from_id to get the sender's ID
console.log('New comment:', newCommentText);// Send a message to your user in a private conversation
try {
const randomId = Math.floor(Math.random() * 999999);
await vk.api.messages.send({
peer_id: 2000000002,
random_id: randomId,
message: `New comment in the discussion ${authorId} ${ids}:n${newCommentText}`,
});
console.log('Message sent to the user');
} catch (error) {
console.error('Error sending message to the user:', error);
}
} else if (context.text) {
const args = context.text.split(' ');// Rest of your existing code for handling commands
}await next();
});
Проблема в том, что все другие данные, а именно id, text извлекаются корректно, кроме from_id. Бот не видит её и отправляет undefined. Код писал опираясь на справочник https://dev.vk.com/ru/reference/objects/comment-to....
Дополнительно:
А что, собственно, в console.log(context)?
Ну и немного смущает эта строчка
const authorId = context.from_id; // Use context.object.from_id to get the sender's ID
Прям в комменте написано где брать ID отправителя
Писал в поддержку ВКонтакте, ответили что структура документации не менялась, они сами там тоже протестировали, у них в object это всё работает.
Не знаю почему, но всё кроме from_id работает.
Ответы:
{msg.SenderId} вставь и ему отобразит ИД пользователя как сендер
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы найти идентификатор пользователя ВКонтакте, можно воспользоваться различными способами в зависимости от того, что именно вы имеете под рукой.
1. Если у вас есть ссылка на профиль пользователя, то идентификатор можно найти просто посмотрев на адресную строку браузера. Обычно идентификатор пользователя в ссылке будет после "vk.com/id" или "vk.com/". Например, если ссылка выглядит как "vk.com/id123456789", то идентификатор пользователя - 123456789.
2. Если у вас есть имя пользователя (никнейм), то для того чтобы найти его идентификатор, можно воспользоваться методом users.get API ВКонтакте. Например, для пользователя с никнеймом "example" запрос будет выглядеть примерно так: "https://api.vk.com/method/users.get?user_ids=example&access_token=YOUR_ACCESS_TOKEN&v=5.131". В ответе на запрос вы получите информацию о пользователе, в том числе и его идентификатор.
3. Если у вас есть имя и фамилия пользователя, то можно воспользоваться поиском ВКонтакте. Просто введите имя и фамилию в поисковую строку на сайте и найдите нужного пользователя. После этого перейдите на его страницу, и идентификатор будет виден в адресной строке браузера.
Вот пример кода на PHP, который использует метод users.get API для поиска идентификатора пользователя по его никнейму:
$nickname = "example"; $access_token = "YOUR_ACCESS_TOKEN"; $api_version = "5.131"; $request_url = "https://api.vk.com/method/users.get?user_ids={$nickname}&access_token={$access_token}&v={$api_version}"; $response = file_get_contents($request_url); $user_info = json_decode($response, true); if(isset($user_info['response'][0]['id'])){ $user_id = $user_info['response'][0]['id']; echo "User ID: {$user_id}"; } else { echo "User not found"; }
Надеюсь, данная информация поможет вам найти идентификатор пользователя ВКонтакте. Если у вас остались вопросы, не стесняйтесь задавать их.