Telegram API не работает с именем пользователя - 400. Неверный запрос: чат не найден - PullRequest
0 голосов
/ 21 июня 2020

Я получил данные о себе через метод API / getMe

    {'ok': True, 'result': {'id': 32484XXXX, 'first_name': 'Name', 'last_name': 'NameN', 'username': '@myname',
                            'type': 'private',
    ...

Затем я пытаюсь отправить от бота себе сообщение с идентификатором телеграммы и именем пользователя телеграммы. С идентификатором все работает нормально, а с именем пользователя не работает. Что я делаю не так? Как отправлять сообщения с именем пользователя?

    import requests
    
    telegram_bot_url = 'https://api.telegram.org/botXXXXXXXX:AAHfPgXkYrqPSakpsxB81UTsYwfmaq9dryY/'
    params_name = {'chat_id': '@myname', 'text': 'test777'}
    params_id = {'chat_id': 32484XXXX, 'text': 'test777'}
    print("ID")
    response = requests.post(telegram_bot_url + 'sendMessage', data=params_id)
    print(response.json())
    print("USERNAME")
    response = requests.post(telegram_bot_url + 'sendMessage', data=params_name)
    print(response.json())

и ответ

ID
{'ok': True, 'result': {'message_id': 15, 'from': {'id': 121079XXXX, 'is_bot': True, 'first_name': 'RRRR', 'username': 'RRRR'}, 'chat': {'id': 32484XXXX, 'first_name': 'Name', 'last_name': 'NameN', 'username': 'myname', 'type': 'private'}, 'date': 1592754152, 'text': 'test777'}}
USERNAME
{'ok': False, 'error_code': 400, 'description': 'Bad Request: chat not found'}

1 Ответ

0 голосов
/ 21 июня 2020

Если вы внимательно посмотрите на документы BotAPI,

Уникальный идентификатор для целевого чата или имя пользователя целевого канала (в формате @channelusername)

Уникальный идентификатор ->, который является идентификатором чата (может использоваться для любого типа чатов)

Имя пользователя -> @username может использоваться только для каналов (без приватных чаты / группы)

...