Telegram API 不适用于用户名 - 400。错误请求:找不到聊天
Telegram API doesn't work with username - 400. Bad Request: chat not found
我通过 API 方法 /getMe
收到了关于我自己的数据
{'ok': True, 'result': {'id': 32484XXXX, 'first_name': 'Name', 'last_name': 'NameN', 'username': '@myname',
'type': 'private',
...
然后我尝试从机器人向我自己发送一条带有电报 ID 和电报用户名的消息。
有了 ID,一切正常,但有了用户名,就不行了。
我究竟做错了什么?如何使用用户名发送消息?
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'}
如果您仔细查看 BotAPI 文档,
Unique identifier for the target chat or username of the target
channel (in the format @channelusername)
唯一标识符 -> 这是聊天 ID(可用于任何类型的聊天)
用户名 -> @用户名只能用于public channels/groups(禁止私聊/channels/groups)
我通过 API 方法 /getMe
收到了关于我自己的数据 {'ok': True, 'result': {'id': 32484XXXX, 'first_name': 'Name', 'last_name': 'NameN', 'username': '@myname',
'type': 'private',
...
然后我尝试从机器人向我自己发送一条带有电报 ID 和电报用户名的消息。 有了 ID,一切正常,但有了用户名,就不行了。 我究竟做错了什么?如何使用用户名发送消息?
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'}
如果您仔细查看 BotAPI 文档,
Unique identifier for the target chat or username of the target channel (in the format @channelusername)
唯一标识符 -> 这是聊天 ID(可用于任何类型的聊天)
用户名 -> @用户名只能用于public channels/groups(禁止私聊/channels/groups)