Answer the question
In order to leave comments, you need to log in
Bot crashes, how to ignore other groups?
error: Traceback (most recent call last):
File "D:\Hello_World\Hello_Worlds.py", line 40, in
name = get_name(from_id)
File "D:\Hello_World\Hello_Worlds.py", line 14, in get_name
sender_info = getting_api.users.get(user_ids=from_id)[0]
File "C:\Users\Xamjl\AppData\Local\Programs\Python\Python39\lib\site-packages\vk_api\vk_api.py", line 696, in __call__
return self._vk.method(self._method, kwargs)
File "C:\Users\Xamjl\AppData\Local\Programs\Python\Python39\lib\site-packages\vk_api\vk_api.py", line 656, in method
raise error
vk_api.exceptions.ApiError: [113] Invalid user id
Process finished with exit code 1
If there are other bots in the conversation, then my bot immediately crashes and gives an error, here is the code:
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.utils import get_random_id
def write_message(sender, message):
authorize.method('messages .send', {'chat_id': sender, 'message': message,
'random_id': get_random_id()
})
def get_name(from_id):
sender_info = getting_api.users.get(user_ids=from_id)[0]
full_name = sender_info .get('first_name') + ' ' + sender_info['last_name']
return full_name
# code to call the user in a conversation.Not working yet.
def get_chat_member(sender, group_id, user_name_search):
members = getting_api.messages.getConversationMembers(peer_id=2000000000 + sender, group_id=group_id)['profiles']
for i in range(len(members)):
if members[i][ 'first_name'] == user_name_search:
user_id = members[i]['id']
full_name = members[i]['first_name'] + ' ' + members[i]['last_name']
appeal = '*id' + str(user_id) + ' (' + full_name + ')'
return appeal
token = 'token'
authorize = vk_api.VkApi(token=token)
longpoll = VkBotLongPoll(authorize, group_id=00000)
getting_api = authorize.get_api()
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat and event.message.get('text') != '':
received_message = event.message.get('text')
sender = event.chat_id
from_id = event. message.get('from_id')
name = get_name(from_id)
if received_message == 'Hi':
write_message(sender, 'Hey' + ', ' + name)
elif received_message == 'Bye':
write_message(sender, 'Come on goodbye -_- ' + ', ' + name)
elif received_message == 'Total collection':
write_message(sender, 'Attention boobies!' ' ' + name + ' ' 'Announces the total [email protected] ')
elif received_message == 'Call Silent Ones':
write_message(sender, 'Attention fuckers' ' ' + name + ' ' 'Saying: don't be silent! @online')
elif received_message[0:6] == 'Call':
user_name_search = received_message[7:]
chat_member = get_chat_member(sender , 0000, user_name_search)
if chat_member is None:
write_message(sender, 'This user is not in the conversation')
else:
write_message(sender, chat_member + ', you are called')
elif received_message == 'Bot':
write_message(sender, '✅ On the spot')
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question