我试图让我的电报机器人提及用户的电报谁没有用户名,并希望提及他们使用用户ID。下面是我的python代码。。它不会标记那些没有用户名的用户。
def welcome(update, context, new_member):
# Greets a person who joins the chat
message = update.message
chat_id = message.chat.id
if new_member.username is None:
username = "["+new_member.first_name+"](tg://user?id="+str(new_member.id)+")"
else:
username = new_member.username
logger.info(
"%s joined to chat %d (%s)",
escape(username),
chat_id,
escape(message.chat.title),
)
text = (
f"Hello @{username}! Welcome to the {message.chat.title} "
"telegram group!\n"
"Please introduce yourself."
)
context.bot.send_message(chat_id=chat_id, text=text)
根据链接:可以通过带有标记的数字id提及用户:Markdown样式
要使用此模式,请在使用sendMessage时在parse_mode字段中传递Markdown。在消息中使用以下语法:
内联提及用户
我无法将其应用到我的代码中并使其工作。有人能帮我吗?该功能已在此处成功应用
https://github.com/domdorn/telegram/commit/ea308cadb739a9a018c7fbabc16824e2ff82d415
我想在我的代码中应用相同的方法,以便它会提到没有用户名和ID的用户。
您应该指定parse\u mode参数:
context.bot.send_message(
chat_id=chat_id,
text=text,
parse_mode='markdown',
)
顺便说一句,当您使用内联链接时,没有必要写“@”。
此外,我建议您使用电报文本模块来编写指向用户的链接:
from telegram_text import InlineUser, User
def welcome(update, context, new_member):
...
if new_member.username is None:
user = InlineUser(new_member.first_name, new_member.id)
else:
user = User(new_member.username)
text = (
f"Hello {user}! Welcome to the {message.chat.title} "
"telegram group!\n"
"Please introduce yourself."
)
您必须指定解析模式=电报。解析模式。标记或send\u message
方法中的parse\u mode='MARKDOWN'。您编辑的代码应如下所示:
def welcome(update, context, new_member):
# Greets a person who joins the chat
message = update.message
chat_id = message.chat.id
if new_member.username is None:
username = "["+new_member.first_name+"](tg://user?id="+str(new_member.id)+")"
else:
username = new_member.username
logger.info(
"%s joined to chat %d (%s)",
escape(username),
chat_id,
escape(message.chat.title),
)
text = (
f"Hello @{username}! Welcome to the {message.chat.title} "
"telegram group!\n"
"Please introduce yourself."
)
context.bot.send_message(
chat_id=chat_id,
text=text,
parse_mode=telegram.ParseMode.MARKDOWN,
)
您也可以使用HTML或MARKDOWN\u V2。
链接到留档和完整信息:
https://python-telegram-bot.readthedocs.io/en/stable/telegram.parsemode.html#telegram.ParseModehttps://core.telegram.org/bots/api#formatting-options
提高代码质量和简化代码的提示(我认为您正在使用python Telegrame bot):
*
。外部导入*
问题内容: 我正在尝试使用discord.py编写一个简单的机器人,所以我从有趣的命令开始,例如只是为了获得api的优势。 问题答案: 因此,我经过几天的反复试验终于弄清楚了如何做到这一点,希望其他人可以从中受益,并且比我实际承受的痛苦更少。解决方案最终很容易。
我想提及的用户,甚至是那些没有用户名的用户。 如果用户设置了用户名,我会返回 作为一个答案,但如果用户没有,我不能这样做。 我尝试使用唯一的用户ID,例如。 但这并不奏效。 我怎样才能做到这一点?
这可能是一个简单的问题,但我无法解决。 我使用Slack Python Api在频道中提到用户,我在这里指的是文档,https://api.slack.com/methods/chat.postMessage,我的代码很简单, 这将向频道发送消息,但我找不到任何提及用户的选项。我试图在信息中加入,例如 该消息将被发布,但以纯文本形式发布,而不是真正提及某人。顺便说一句,我正在使用测试令牌。(或者也
我在我的系统中使用谷歌广告API PHP库。但是我没有在这里提供的API列表中找到以下2个APIhttps://developers.google.com/google-ads/api/docs/account-management/create-account: API,以查明用户是否已经存在使用电子邮件的谷歌广告帐户?如果找到,则返回其10位数的客户ID。 我在几个网站上见过同样的过程。每当用
我一直在使用电报机器人为一个组和用户发送通知。 我已经知道我可以通过使用getUpdates在我的机器人上接收用户的消息来获取聊天ID。 我也知道我可以使用相同的方法获取Group ID... 但我真正需要的是:我的团队中有三个用户。 我的机器人 有可能得到第三个用户的ID吗?PS:我是群主,还将我的机器人添加为管理员... 第三个用户是普通用户。有人能帮我吗? 谢啦!
嗨,我正在尝试建立一个网站登录系统,用户可以使用电报登录。我希望实现此工作流: < li >用户选择通过电报登录/注册。 < li >用户输入他们的用户名(@ExampleJoe)。 < li >通过我的电报机器人(@ExampleBot)向他们发送6位验证码。 < li >用户将收到的6位数字代码输入到我的网站,并被允许进入。 我在步骤 2-3 中遇到了问题,我的机器人可以仅使用其用户名向他们发