在SpringBoot应用中集成Java以创建Telegram(TG)机器人

在你的问题中,你提到了两个主要的Python库用于向Telegram发送消息,但是你在使用 telegram.Bot 时遇到了关于 proxy 的问题。首先,我会解决你提到的 proxy 问题,然后给出两种方法的完整示例。

1. 使用 requests 库发送消息(包含代理)

你已经正确地使用了 requests 库来发送消息,并包含了代理设置。这部分看起来没有问题。这里是一个完整的示例,确保你的 token 和 chat_id 是正确的:

 

python复制代码

import requests
token = '6666666666:AAXXXXXXXXXXXXXXXX'
chat_id = '66666688888'
message = 'this is a simple TEST tg_message.'
proxies = {'http': "socks5://127.0.0.1:10808", 'https': "socks5://127.0.0.1:10808"}
url = f'https://api.telegram.org/bot{token}/sendMessage'
data = {'chat_id': chat_id, 'text': message}
r = requests.post(url, proxies=proxies, json=data)
print(r.text) # 打印响应内容,以检查是否成功

2. 使用 python-telegram-bot 库发送消息(无代理设置)

python-telegram-bot 库本身不直接支持在初始化时设置代理。但是,你可以通过修改 requests 的全局设置来间接实现这一点,或者在你的环境中配置代理。然而,为了简单起见,这里不包含代理设置。

首先,你需要安装 python-telegram-bot

 

bash复制代码

pip install python-telegram-bot

然后,你可以使用以下代码发送消息:

 

python复制代码

from telegram import Bot
TOKEN = '6666666666:AXXXXXXXXXXXXXXXXXXXXXX'
CHAT_ID = '666666688888'
bot = Bot(token=TOKEN)
message = 'This is a Bot Test'
bot.send_message(chat_id=CHAT_ID, text=message)

关于代理

如果你确实需要在 python-telegram-bot 中使用代理,你可能需要查看如何为 requests 库全局设置代理,或者在你的操作系统级别设置代理。对于 requests 的全局代理设置,你可以这样做:

 

python复制代码

import requests
# 全局代理设置
proxies = {'http': 'socks5://127.0.0.1:10808', 'https': 'socks5://127.0.0.1:10808'}
requests.adapters.DEFAULT_RETRIES = 5 # 可以设置重试次数
s = requests.Session()
s.proxies = proxies
# 然后,你可能需要修改 `python-telegram-bot` 的内部请求,使其使用你的会话 `s`
# 但这通常涉及到库的内部实现,不推荐除非绝对必要
# 一个简单的解决方法是在需要时直接使用 `s` 发送请求

然而,由于 python-telegram-bot 封装了请求,直接修改其内部请求可能不是最佳实践。如果可能的话,考虑在操作系统级别或网络级别设置代理。

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值