首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Python发送电报消息

从Python发送电报消息
EN

Stack Overflow用户
提问于 2015-03-12 06:36:45
回答 3查看 46K关注 0票数 17

我想通过电报从Python脚本中发送消息。我已经尝试过通过电报-cli( 维生原版“幸运”的补丁版本 )来做到这一点.有了他们,我可以成功地把信息发送到我的手机。我的问题是:

  • pytg2没有干净地安装(导入DictObject失败,显然作者在pypi上单独安装了这个,但我在这一点上停止了),需要Python3(不像我项目的其余部分,但可以接受),而且可以做的比我需要的多得多。
  • 我无法将输入输入到tg控制台环境中,然后在那里执行。通过<<EOF ... EOF输入失败,因为这个所以问题失败了;程序在控制台上打开,但没有输出任何内容。
  • 通过-P选项打开端口是有效的。然后,我可以在nc环境中操作(类似于tg wiki),但我不确定在我的Python中实现所有这些调用是否明智。
  • 我还找到了另一个脚本,它将命令回显到tg (忘记源代码),但也没有工作(类似于上面的<<EOF )。 #/bin/bash to=Matthias_SG msg="test message“tgpath=/home/ Matthias /dvl/tg cd ${tgpath} (回波"add_contact +xxx Matthias SG";echo "msg $to $msg")

所以我的问题是:我应该回到老矮人身上吗?我可以通过从stringIO或popen中输入subprocess.call来修复shell脚本或将它们修改为Python吗?有没有人以一种强有力的方式使用这个?

背景

  • http://www.instructables.com/id/Raspberry-remote-control-with-Telegram/展示了如何使用Lua脚本用'pong‘消息来回复'ping’消息。为我工作过。
  • http://technofaq.org/posts/2014/06/chat-with-telegram-buddies-the-geeky-way-with-telegram-cli/
EN

回答 3

Stack Overflow用户

发布于 2019-11-22 05:11:03

第一步是创建一个bot并获取token

第二步是获取chat_id

  • 在聊天中写点什么
  • 访问https://api.telegram.org/bot<YourBOTToken>/getUpdates并获取密钥message['chat']['id']下的chat_id

最后一步是使用以下代码:

代码语言:javascript
运行
复制
import requests

def telegram_bot_sendtext(bot_message):

   bot_token = ''
   bot_chatID = ''
   send_text = 'https://api.telegram.org/bot' + bot_token + '/sendMessage?chat_id=' + bot_chatID + '&parse_mode=Markdown&text=' + bot_message

   response = requests.get(send_text)

   return response.json()


test = telegram_bot_sendtext("Testing Telegram bot")
print(test)

Medium.com:如何创建一个电报机器人,并使用Python发送消息中提取代码

票数 44
EN

Stack Overflow用户

发布于 2022-03-30 16:13:12

  1. @BotFather谈谈。向他们发送/newbot并按照提示进行操作。作为响应,您将得到一个HTTP令牌(它看起来类似于123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)。
  2. 与您新创建的机器人对话,只需使用/start即可。
  3. 立即在web浏览器中打开https://api.telegram.org/bot<token>/getUpdates?offset=-1 (从BotFather收到的标记按字面粘贴,包含所有字母和标点符号)。从返回的JSON对象复制chat id。
  4. 有了上面的数据,发送消息就是一个简单的POST请求。 例如,使用请求库: 导入请求令牌=‘.’CHAT_ID =‘.’SEND_URL = f'https://api.telegram.org/bot{TOKEN}/sendMessage‘requests.post(SEND_URL,json={'chat_id':CHAT_ID,'text':your_message})
票数 3
EN

Stack Overflow用户

发布于 2017-05-23 15:53:11

我宁愿使用包python-telegram-bot,它对我来说很好。

您可以找到这里文档和一个简单的入门示例。

为了回复文本消息,可以在MessageHandler之后添加CommandHandler,例如:

代码语言:javascript
运行
复制
updater.dispatcher.add_handler(MessageHandler(Filters.text, text_reply))

def text_reply(bot, updater):
    text = update.message.text

    if text == 'ping':
        reply = 'pong'

    elif text == 'pong':
        reply = 'ping'

    # add any process to the text

    else:
        reply = "I only respond to ping pong"

    update.message.reply_text(reply)

不要忘记导入from telegram.ext import MessageHandler

希望这能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29003305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档