我使用curl来更新我的公共频道.这种语法:
>curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"
Run Code Online (Sandbox Code Playgroud)
但chat_id私人频道是什么?这不是私人邀请中的那个.
因为现在我们可以在所有方法中代替chat_id传递通道用户名(格式为@channelusername)(而不是forwardMessage中的from_chat_id).但是我管理的私人频道的@channelusername是什么?
我可以知道telegram bot API中的chat_id是什么吗?文件说:
整数| 邮件收件人的唯一标识符 - User或GroupChat id
我找不到任何描述.如何为用户或组获取它?
我一直在尝试将机器人添加到Android设备中的Telegram组,但我无法这样做.我试过@bot_name,/ bot_name但它不起作用.任何人都可以告诉我是否可以向该组添加机器人,或者我应该使用Telegram API(非bot API)创建一个新的机器人,以便我可以将联系号码添加到该组?
我在Python中使用以下代码从机器人向自己发送消息.
import requests
token = '320835125:AAFUUC-fdo_EFzsCjvmxu8HBk7qVzZXXXXX'
method = 'sendMessage'
myuserid = 1949275XX
response = requests.post(
url='https://api.telegram.org/bot{0}/{1}'.format(token, method),
data={'chat_id': myuserid, 'text': 'hello friend'}
).json()
print(response)
Run Code Online (Sandbox Code Playgroud)
但这会回来 {'description': 'Bad Request: chat not found', 'error_code': 400, 'ok': False}
我究竟做错了什么?我myuserid通过发送/getid来@myidbot获得我的令牌@BotFather
我正在尝试在电报聊天中发送消息。我希望电报设置只能通过官方 UI 完成,因为我希望它可能由最终用户完成。
这是我所做的电报设置:
XXXXXXX_bot通过获取令牌与 Botfather 创建了机器人:没问题TestChannelXXXXXXX_botTestChannelTestChannelChatTestChannelChatXXXXXXX_bot以下是频道管理员的设置:
最终,电报 UI 中的聊天/群组设置如下:
我进行以下 http 调用:
GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannelChat&text=coucou
Run Code Online (Sandbox Code Playgroud)
这给了我以下答案:
GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannelChat&text=coucou
Run Code Online (Sandbox Code Playgroud)
我还做了以下操作(绕过实际聊天并直接在频道中发布消息):
GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannel&text=coucou
Run Code Online (Sandbox Code Playgroud)
这给了我以下答案:
{
"ok": false,
"error_code": 403,
"description": "Forbidden: bot is not a member of the supergroup chat"
}
Run Code Online (Sandbox Code Playgroud)
一个简单的问题,由于机器人也用于广播消息,我缺少其设置的哪一部分?
尝试了Telegram bot - how to get a group chat id ?中描述的所有选项 红宝石宝石 Telegram_bot。
当浏览到: https: //api.telegram.org/botXXX:YYYY /getUpdates 时,我得到的是:
{“确定”:true,“结果”:[]}
我究竟做错了什么?
我正在尝试构建一个机器人,它会在使用 python 的最新新闻中有更新时自动发送消息。以下是我所做的。
companies = {
"name_1": {
"rss": "name_1 rss link",
"link": "name_1 link"
}
}
import feedparser as fp
import time, telebot
token = <TOKEN>
bot = telebot.TeleBot(token)
LIMIT = 1
while True:
def get_news():
count = 1
news = []
for company, value in companies.items():
count = 1
if 'rss' in value:
d = fp.parse(value['rss'])
for entry in d.entries:
if hasattr(entry, 'published'):
if count > LIMIT:
break
news.append(entry.link)
count = count + 1
return (news)
val = …Run Code Online (Sandbox Code Playgroud) 嗨,我有一个 Python 程序,它每隔一小时生成一次结果。结果可以是任何东西。这个程序将在本地机器或虚拟专用网络中运行。
我有两个要求 1. 将这个 python 生成的结果自动发送到一个电报组 [组名“我们的世界”](由我创建),无需用户干预。(我在同一系统中运行桌面电报客户端或 web.telegram.org)
有哪些方法可以实现这一要求。是否有任何可用的工作代码来完成这项工作。请分享信息和细节。
编辑:
我面临的问题:
1.使用BotFather创建了一个Bot。2.将此 Bot 添加到我的组,在这里我收到错误无法添加成员,因此将 Bot 添加为组中的管理员 3.记下 BOT 的令牌。4.试图在这个论坛(https://web.telegram.org/#/im?p=g154513121)中获取ChatId有人说p=g之后的数字是chartid,在我的例子中没有数字显示@testingname像这样。
- 使用这种方法尝试获取聊天 ID https://api.telegram.org/bot738909732:AAE-2l7xAAlYHBXprK_a_bex09g9DMZbbDI/getme 所以这里 738909732 成为聊天 ID(在这种情况下为什么我们需要单独调用图表 ID)真正的回应来了!这里的聊天 ID 是我的“testingname”的 ID,没有为该组生成的图表 ID。6.现在打包 URL 以查看响应我收到此错误。
如果我在浏览器中运行这个输出
{"ok":false,"error_code":400,"description":"错误请求:找不到聊天"} {"ok":false,"error_code":403,"description":"禁止:bot 不能向机器人发送消息"}
如何解决此问题并使 BOT 正常工作。为什么我无法将 BOT 添加到我的组中,显示错误“无法添加用户”
如何使这个电报组工作。
注意:使用 BotFather BOT 创建
在我们的小型初创公司中,我们使用 GitLab 进行开发,使用 Telegram 进行开发人员和 PO 之间的内部通信。由于 PO 希望立即看到进度,因此我们设置了 GitLab Pipeline,以便在每次提交后将预览版本部署到 Web 服务器上。现在我们想扩大管道。因此,部署后会通过 Telegram 组发送通知。
所以问题是——这可能吗?如果可能的话,如何实现?
编辑:因为我已经实现了,所以这不是一个真正的问题。我想将答案发布在这里,以便其他人也可以使用它。
我用@botfather 制作了一个电报机器人,并将该机器人提升为公共组的管理员。每当我尝试从 python 代码发送消息时,它总是将消息发送给自己,我的意思是在私人聊天中而不是在公共组中。
编写的代码快照:
bot_token = 'XXXXXXXXXXXXXXXXXXX'
bot_chatID = '395014927'
bot_message = "Testing"
send_text = 'https://api.telegram.org/bot' + bot_token + '/sendMessage?chat_id=' + bot_chatID + '&text=' + bot_message
response = requests.get(send_text)
response.json()
Run Code Online (Sandbox Code Playgroud)
如何让机器人在群组中发送消息,而不是发送给自己?
我在这里遗漏了什么还是我需要修改一些设置?
编辑(已解决):聊天组始终为负数。查找该号码以获取该组的聊天 ID。
我正在尝试查找 Telegram 的 Api 密钥,但找不到。我在哪里可以在网站上找到它?如果我使用 Api Id,我会Incorrect Token Format在 C# 控制台应用程序中收到错误消息。
我对电报机器人完全陌生。我想bot.send_message()在以下代码中执行 a (如代码中所述),但不能这样做。请帮忙。
!pip install python-telegram-bot --upgrade
import telegram
bot = telegram.Bot(token='**************')
bot.send_message(chat_id='******', text="I'm sorry Dave I'm afraid I can't do that.")
Run Code Online (Sandbox Code Playgroud)
它错误为:
1 bot.send_message('mardepbot',"I'm sorry Dave I'm afraid I can't do that.")
/usr/local/lib/python3.6/dist-packages/telegram/bot.py in decorator(self, *args, **kwargs)
63 def decorator(self, *args, **kwargs):
64 logger.debug('Entering: %s', func.__name__)
---> 65 result = func(self, *args, **kwargs)
66 logger.debug(result)
67 logger.debug('Exiting: %s', func.__name__)
/usr/local/lib/python3.6/dist-packages/telegram/bot.py in decorator(self, *args, **kwargs)
88 data['reply_markup'] = reply_markup
89
---> 90 result = self._request.post(url, data, timeout=kwargs.get('timeout'))
91 …Run Code Online (Sandbox Code Playgroud) telegram-bot ×9
telegram ×8
python ×3
python-3.x ×2
bots ×1
c# ×1
email ×1
gitlab ×1
gitlab-ci ×1
telegram-api ×1
telepot ×1