user_id
можно найти в объекте Message, когда пользователь отправляет сообщение.user_id
через username
с помощью API ботов нельзя pageToken
со значением, которое получили.messages = []
next_page_token = None
for _ in range(3):
if next_page_token:
msgs = service.users().messages().list(userId='me',maxResults=500, pageToken=next_page_token).execute()
else:
msgs = service.users().messages().list(userId='me',maxResults=500).execute()
messages.extend(msgs)
next_page_token = msgs['nextPageToken']
if rolename in member.roles:
вынесен за цикл. Переменная rolename
так же переопределена, хотя она является параметром, а именно - той ролью, которую нужно исключить. Это вообще непонятно зачем сделано rolename = discord.utils.get(ctx.guild.roles)
и зачем это в цикле. Просто условно 10 раз назначить одну и ту же переменную одинаковую, получив какой-то элемент из списка ролей? Ну и при условии выпадения блока из цикла, всегда выбирается последний человек, независимо от его роли. А там роль может быть выше бота, так же последним человеком может быть и владелец сервера. params = {'access_token': TOKEN, 'v': 5.131, 'message_ids': [369]}
r = requests.get('https://api.vk.com/method/messages.getById', params=params)
print(r.json()['response']['items'][0]['attachments'][0]['photo']['sizes'])
r = requests.get('{server}?act=a_check&key={key}&ts={ts}&wait=90'.format(server=data['server'], key=data['key'], ts=data['ts'])).json()
print(r['updates'][0]['object']['message']['attachments'][0]['photo']['sizes'])
/unban @user1222
, то можно использовать встроенный конвертер. async def unban(ctx,*, member: discord.Member):
frist_name
- неправильно. first_name
bot.send_message(message.chat.id,+ str(Random.randint(0, 1000)))
неправильный вызов, зачем тут плюс и обращаться к библиотеки нужно как random.
/starts
, вы же отправляете /start
def hotels_max(message, *args):
maximum_hotels = int(message.text)
for sorted_hotel in args[0][:maximum_hotels]:
hotel_name, hotel_price, hotel_id = sorted_hotel.split(',')
kb = types.InlineKeyboardMarkup()
kb.add(types.InlineKeyboardButton('Получить фото', callback_data=f'hotel_{hotel_id}'))
bot.send_message(message.from_user.id, f'{hotel_name}, {hotel_price}', reply_markup=kb)
@bot.callback_query_handler(func=lambda call: call.data.startswith('hotel_'))
def hotel_photo(call):
# Предположу, что фото можно будет получить по ID отеля, поэтому достаем его
hotel_id = call.data.split('_')[-1]
# ну и дальше уже получаем фото и отправляем
switch_inline_query_current_chat
равным, допустим, "Аккумуляторы"@bot.message_handler(commands=['start'])
def send_start(message):
markup = InlineKeyboardMarkup()
markup.add(InlineKeyboardButton('Аккумуляторы', switch_inline_query_current_chat='Аккумуляторы'))
bot.send_message(message.chat.id, 'Товары', reply_markup=markup)
@bot.inline_handler(lambda query: query.query == 'Аккумуляторы')
def query_video(inline_query):
r = InlineQueryResultArticle('1', 'SONY VTC6 3000 mah 30A 18650', InputTextMessageContent('Аккумулятор 1'), description='blah', url='https://buy-battery.com/goods/1', hide_url=True, thumb_url='https://via.placeholder.com/50')
r2 = InlineQueryResultArticle('2', 'SONY VTC5A 2600 mah 35A 18650', InputTextMessageContent('Аккумулятор 2'), description='blah', url='https://buy-battery.com/goods/2', hide_url=True, thumb_url='https://via.placeholder.com/50')
bot.answer_inline_query(inline_query.id, [r, r2])