import requests
import json
bot_token = " " # your bot token
token_url = f"https://api.telegram.org/bot{bot_token}/"
parameters = {
"name": "sdfjk123",
"language_code": "en"
}
headers = {
"Content-Type": "application/json",
}
print(token_url+'setMyName')
def set_name():
r = requests.post(token_url+'setMyName', json=json.dumps(parameters), headers=headers)
print(r.json())
set_name()
{'ok': False, 'error_code': 400, 'description': 'Bad Request: BOT_TITLE_INVALID'}
首先,我检查了我的令牌,没有错误,其次 我尝试使用
request.get(url,params=parameters)
,确实返回了成功,但是机器人名称没有改变,所以我使用了上面的方法。另外,我使用了 setMyDescription
和 setMyCommands
,它们也返回成功,但机器人没有改变。当我使用相关设置参数时,机器人似乎没有改变,但是当我使用查询和其他参数时,却返回了相应的信息!
有什么办法可以解决这个问题吗?
您将数据作为
json=json.dumps(parameters)
传递,但您需要使用 data
中的 requests
参数。
以下代码允许我更新机器人的用户名
import requests
import json
bot_token = "xxx" # your bot token
token_url = f"https://api.telegram.org/bot{bot_token}/"
parameters = {
"name": "FooBar",
"language_code": ""
}
def set_name():
r = requests.post(token_url+'setMyName', data=json.dumps(parameters))
print(r.json())
set_name()
回应:
{'ok': True, 'result': True}