如何向 Telegram 机器人 API 发送请求?
How to send request to Telegram bot API?
创建电报机器人并获得机器人令牌后,我想向机器人发送请求API。
This link 表示我们必须像这样发送 HTTP 请求:
https://api.telegram.org/bot<token>/METHOD_NAME
并为最简单的方法 "getme" 提供了没有任何输入参数的示例。
假设我想发送一些消息。我应该使用 sendMessage
方法,它有两个必需的输入参数:chat_ID 和文本。
现在我的问题开始了:
如何将这个带有参数的请求格式写成上面的sendMessage方法?我尝试了 sendMessage(param1,param2)
并收到了找不到方法的消息。
什么是chat_id
?如果我想给联系人发消息,我怎么知道他的chat_id
?
我在互联网上搜索了很多,GitHub 上有很多专门用于此目的的项目,老实说,其中 none 是有意义的。
看在上帝的份上,有人请帮助我。我迷路了。
此致。
您只需发送 POST 请求至:
https://api.telegram.org/bot{token}/{method}
例如:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage
在请求正文中,您URL对参数进行编码:
chat_id=12345&text=hello%20friend
例如,在 Python 中使用 requests
模块:
import requests
response = requests.post(
url='https://api.telegram.org/bot{0}/{1}'.format(token, method),
data={'chat_id': 12345, 'text': 'hello friend'}
).json()
当用户与您的机器人聊天时,您会收到 Message
object that has a chat id (and a user id, which you can substitute for a chat id). There's no way to initiate a chat with a user unless you already know their user id, so you have to wait for a user to talk to you. You can simplify that by using deep linking 并让用户单击 link,当他们点击“开始”按钮时会发送一条预制消息。
编辑:对于那些努力寻找 chat_id 的人,这里有一个方法:
1.- 创建一个机器人:在 Telegram 的搜索中查找 @BotFather。点击开始,写/newbot,给它一个名字和一个用户名。你应该得到一个令牌来访问 HTTP API。保存此令牌。
2.- 使用用户名在 Telegram 上找到您的机器人。给它写点东西,例如'test'。这个以后用得上。
3.- 打印 chat_id。在 运行 此功能之前,请确保您至少已在 Telegram 上向您的机器人发送一条消息(第 2 步)
Javascript代码:
var token = "123456:kioASDdjicOljd_ijsdf"; // Fill this in with your token
var telegramUrl = "https://api.telegram.org/bot" + token;
function getChat_id(){
var res = UrlFetchApp.fetch(telegramUrl+"/getUpdates").getContentText();
var res = JSON.parse(res);
Logger.log(res.result[0].message.chat.id.toString());
}
试试这个
https://api.telegram.org/bot{token}/sendMessage?chat_id=<chat_id>&text=<Enter your text here>
示例
https://api.telegram.org/bot449123456:AAHSAnSGDm8PW2Z-1ZiwdVDmgv7sM3NMTxg/sendMessage?chat_id=311911234&text=Hi+Everyone
创建电报机器人并获得机器人令牌后,我想向机器人发送请求API。
This link 表示我们必须像这样发送 HTTP 请求:
https://api.telegram.org/bot<token>/METHOD_NAME
并为最简单的方法 "getme" 提供了没有任何输入参数的示例。
假设我想发送一些消息。我应该使用 sendMessage
方法,它有两个必需的输入参数:chat_ID 和文本。
现在我的问题开始了:
如何将这个带有参数的请求格式写成上面的sendMessage方法?我尝试了
sendMessage(param1,param2)
并收到了找不到方法的消息。什么是
chat_id
?如果我想给联系人发消息,我怎么知道他的chat_id
?
我在互联网上搜索了很多,GitHub 上有很多专门用于此目的的项目,老实说,其中 none 是有意义的。 看在上帝的份上,有人请帮助我。我迷路了。
此致。
您只需发送 POST 请求至:
https://api.telegram.org/bot{token}/{method}
例如:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage
在请求正文中,您URL对参数进行编码:
chat_id=12345&text=hello%20friend
例如,在 Python 中使用 requests
模块:
import requests
response = requests.post(
url='https://api.telegram.org/bot{0}/{1}'.format(token, method),
data={'chat_id': 12345, 'text': 'hello friend'}
).json()
当用户与您的机器人聊天时,您会收到 Message
object that has a chat id (and a user id, which you can substitute for a chat id). There's no way to initiate a chat with a user unless you already know their user id, so you have to wait for a user to talk to you. You can simplify that by using deep linking 并让用户单击 link,当他们点击“开始”按钮时会发送一条预制消息。
编辑:对于那些努力寻找 chat_id 的人,这里有一个方法:
1.- 创建一个机器人:在 Telegram 的搜索中查找 @BotFather。点击开始,写/newbot,给它一个名字和一个用户名。你应该得到一个令牌来访问 HTTP API。保存此令牌。
2.- 使用用户名在 Telegram 上找到您的机器人。给它写点东西,例如'test'。这个以后用得上。
3.- 打印 chat_id。在 运行 此功能之前,请确保您至少已在 Telegram 上向您的机器人发送一条消息(第 2 步)
Javascript代码:
var token = "123456:kioASDdjicOljd_ijsdf"; // Fill this in with your token
var telegramUrl = "https://api.telegram.org/bot" + token;
function getChat_id(){
var res = UrlFetchApp.fetch(telegramUrl+"/getUpdates").getContentText();
var res = JSON.parse(res);
Logger.log(res.result[0].message.chat.id.toString());
}
试试这个
https://api.telegram.org/bot{token}/sendMessage?chat_id=<chat_id>&text=<Enter your text here>
示例
https://api.telegram.org/bot449123456:AAHSAnSGDm8PW2Z-1ZiwdVDmgv7sM3NMTxg/sendMessage?chat_id=311911234&text=Hi+Everyone