19

创建电报机器人并获得机器人令牌后,我想向机器人 API 发送请求。

这个链接说我们必须像这样发送 HTTP 请求: https://api.telegram.org/bot<token>/METHOD_NAME并为最简单的方法“getme”提供示例,它没有任何输入参数。

想象一下,我想发送一些消息。我应该使用sendMessage具有两个必需输入参数的方法:chat_ID 和文本。

现在我的问题开始了:

  1. 如何以上述请求格式编写此 sendMessage 方法及其参数?我尝试sendMessage(param1,param2)并收到未找到方法的消息。

  2. 是什么chat_id?如果我想给联系人发送消息,我怎么知道他的chat_id

我在互联网上搜索了很多,GitHub 上有很多专门为此目的的项目,老实说,它们都没有任何意义。看在上帝的份上,请有人帮助我。我迷路了。

问候。

4

2 回答 2

41

您只需将 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()

当用户与您的机器人聊天时,您将获得一个具有聊天 ID(以及用户 ID,您可以用它代替聊天 ID)的Message对象。除非您已经知道他们的用户 ID,否则无法启动与用户的聊天,因此您必须等待用户与您交谈。您可以通过使用深层链接并让用户单击一个链接来简化这一过程,当他们点击“开始”按钮时,该链接会发送一条预制消息。

编辑:对于那些努力寻找chat_id的人,这里有一种方法:

1.-创建一个机器人:在 Telegram 的搜索中寻找@BotFather。点击开始,写 /newbot,给它一个名字和一个用户名。您应该获得一个令牌来访问 HTTP API。保存此令牌。

2.-使用其用户名在 Telegram 上找到您的机器人。给它写一些东西,例如“测试”。这将在以后派上用场。

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());
}
于 2015-07-03T04:06:55.690 回答
7

尝试这个

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
于 2017-08-05T19:35:06.377 回答